第 11 课 · 阶段二 · 基础语法

字符串详解

字符串是 Python 里最常用的数据类型。这一课把字符串讲透:创建、索引、切片、常用方法,以及最实用的 f-string 格式化。

第 11 课阶段二 · 基础语法难度:入门建议时长:35 分钟关键词:索引 · 切片 · 方法 · f-string

🎯 学完本课你将掌握

  • 掌握字符串的创建与转义字符
  • 会用索引和切片截取字符串
  • 熟练使用 8 个常用字符串方法
  • 掌握 f-string 格式化输出

一、创建字符串

用单引号或双引号包裹就是字符串,两种写法完全等价;当内容里包含引号时,可以换一种引号或使用转义。

创建字符串.py
1s1 = '单引号'
2s2 = "双引号"
3s3 = "内容里有'单引号'也没关系"
4s4 = '它说"你好"'
5s5 = "用\转义:她说"晚上好""
6print(s1, s2, s3, s4, s5)
转义符含义
\n换行
\t制表符(Tab)
\\反斜杠本身
\' 和 \"引号

二、索引:给字符串编号

字符串里的每个字符都有一个下标(索引),从 0 开始;负数表示从右往左,-1 是最后一个字符。

索引.py
1s = "Python"
2print(s[0]) # P
3print(s[3]) # h
4print(s[-1]) # n 最后一个
5print(s[-2]) # o
6print(len(s)) # 6 字符串长度

三、切片:截取一段

语法:字符串[开始:结束:步长],左闭右开——包含开始,不包含结束。省略开始默认从 0,省略结束默认到末尾。

切片.py
1s = "Hello, Python"
2print(s[0:5]) # Hello
3print(s[7:]) # Python
4print(s[:5]) # Hello
5print(s[-6:]) # Python 后6个
6print(s[::2]) # Hlo,Pto 每隔一个取一个
7print(s[::-1]) # 反转字符串
✅ 要点
s[::-1] 是反转字符串的经典写法,务必记住。

四、常用字符串方法

方法作用示例
upper()/lower()转大写/小写'Ab'.upper() → 'AB'
strip()去除两端空白' hi '.strip() → 'hi'
split()按分隔符拆成列表'a,b'.split(',') → ['a','b']
join()用分隔符拼接','.join(['a','b']) → 'a,b'
replace()替换'ab'.replace('a','x') → 'xb'
find()查找位置,找不到返回-1'abc'.find('b') → 1
startswith()是否以某开头'py'.startswith('p') → True
count()统计出现次数'aaa'.count('a') → 3
方法实战.py
1s = " Python is Awesome "
2print(s.strip().lower()) # python is awesome
3print(s.strip().split(" ")) # ['Python','is','Awesome']
4print("-".join(["2026", "09", "01"])) # 2026-09-01
5print("hello".replace("l", "L")) # heLLo
6print("banana".count("a")) # 3

五、字符串格式化:f-string(最推荐)

在字符串前加 f,用花括号 {} 直接插入变量或表达式,清晰又高效,是 Python 3.6+ 的最佳实践。

f-string.py
1name = "小明"
2age = 10
3score = 92.5
4print(f"我叫{name},今年{age}岁,考了{score}分")
5print(f"明年{age + 1}岁") # 里面还能写表达式
6print(f"分数保留1位:{score:.1f}") # 控制小数位
7print(f"补零对齐:{score:08.2f}") # 00092.50
💡 提示
老式格式化 %s 和 format() 也常用:print('%s 今年 %d 岁' % (name, age))。看懂它们,日常优先用 f-string。

六、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
IndexError: string index out of range索引超出范围,例如 s='abc' 却访问 s[5],用 len() 先确认长度。
TypeError: can only concatenate str字符串不能直接和数字相加,用 f-string 或 str() 转换。
字符串没变化字符串不可变!s.upper() 返回新串,要写 s = s.upper() 才会保存。
✍️ 小练习
定义 s='Python is fun',分别输出:全大写、前6个字符、反转、按空格拆分、统计字母 n 出现次数。
📌 本节小结
字符串用引号创建,索引从 0 开始、负号从右数;切片左闭右开、[::] 可跳步可反转;方法一大堆但 8 个常用就够;格式化首推 f-string。字符串是重中之重,务必多敲几遍。