第 11 课 · 阶段二 · 基础语法
字符串详解
字符串是 Python 里最常用的数据类型。这一课把字符串讲透:创建、索引、切片、常用方法,以及最实用的 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]) # P3print(s[3]) # h4print(s[-1]) # n 最后一个5print(s[-2]) # o6print(len(s)) # 6 字符串长度三、切片:截取一段
语法:字符串[开始:结束:步长],左闭右开——包含开始,不包含结束。省略开始默认从 0,省略结束默认到末尾。
切片.py
1s = "Hello, Python"2print(s[0:5]) # Hello3print(s[7:]) # Python4print(s[:5]) # Hello5print(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 awesome3print(s.strip().split(" ")) # ['Python','is','Awesome']4print("-".join(["2026", "09", "01"])) # 2026-09-015print("hello".replace("l", "L")) # heLLo6print("banana".count("a")) # 3五、字符串格式化:f-string(最推荐)
在字符串前加 f,用花括号 {} 直接插入变量或表达式,清晰又高效,是 Python 3.6+ 的最佳实践。
f-string.py
1name = "小明"2age = 103score = 92.54print(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。字符串是重中之重,务必多敲几遍。