这个主题考什么
- 理解索引和切片,切片不包含结束位置。
- 正确使用 split、join、strip 和 replace 等方法。
- 用 f-string 构造可读输出,并预测精确字符。
常见错误
- 忘记切片不包含结束索引。
- 以为字符串方法会修改原字符串。字符串是不可变的。
- 题目要求精确输出时忽略空格、换行或引号。
样题
从完整题库中挑出的 10 道代表题。先自己作答,再展开答案。
-
1. 小明从「Python奶茶」这个店名里取前 3 个字做招牌,"Python奶茶"[0:3] 的结果是?
显示答案
答案
A. Pyt解析: 切片含起点、不含终点,[0:3] 取下标 0、1、2,即 P、y、t;下标 3 已经是第四个字符,这是切片最常见的错法。
-
2. 判断对错: True 和 False 是 Python 的布尔值, 首字母必须大写。
显示答案
答案
A. ✅ 正确解析: Python 的布尔字面量是首字母大写的 True 和 False。写成 true、false 只是普通名字,会抛 NameError。
-
3. 🧋 小明拆分订单字符串,'hello world'.split() 的结果是?
显示答案
答案
A. ['hello','world']解析: 不传参数时 split() 把任意一段空白当作一个分隔符,并且会丢掉首尾空白,所以连续空格不会切出空串,这一点和 split(' ') 不同。
-
4. 执行 s = "abc"; s[0] = "A" 会怎样?
显示答案
答案
B. 抛出 TypeError解析: 字符串不可变,按项赋值会抛 TypeError。应改用切片、replace() 或 join 生成新字符串。
-
5. 小明格式化奶茶价格 f"{3.14159:.2f}" 元,输出是 ___
显示答案
答案
3.14解析: :.2f 保留两位小数并舍入,3.14159 成为 3.14。格式只作用于冒号前的值,f-string 其余部分原样保留。
-
6. 🧋 小明拆分订单字符串,'1,2,3'.split(',') 返回 ___ 类型
显示答案
答案
列表解析: split() 总是返回列表,哪怕只有一个字段;元素都是字符串,数字字段还要用 int() 或 float() 另行转换。
-
7. 把订单里的短横线替换成空格,横线填什么方法?
order = '拿铁-大杯' print(order.____('-', ' '))显示答案
答案
replace解析: replace('-', ' ') 返回把每个连字符换成空格的新字符串。原 order 字符串不变,因为字符串不可变。
-
8. 小明截取店名,下面代码会打印什么?
print("Python奶茶"[:3])显示答案
答案
Pyt解析: [:3] 省略起点,从下标 0 开始、到 3 之前结束,取到 P、y、t;下标 6 的空格根本碰不到,结果是三个字母。
-
9. 调试标签对编码 65 的字符使用 repr。会打印什么?
print(f"{chr(65)!r}")显示答案
答案
'A'解析: chr(65) 生成字符 A,!r 使用 repr 表示,会给字符串加上引号。所以输出是带引号的 'A'。
-
10. `is_pangram('7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog')` 返回什么?
from string import ascii_lowercase def is_pangram(sentence): return all(char in sentence.lower() for char in ascii_lowercase) print(is_pangram('7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog'))显示答案
答案
False解析: 数字 7 和 3 顶替了字母,t 和 e 始终没出现,all() 返回 False。这种数字替代写法不算全字母句。
常见问题
为什么 s.strip() 没有改变 s?
字符串不可变。strip 返回一个新字符串;如果需要保留结果,要把它赋给变量。
怎样连接字符串列表?
使用分隔符.join(列表)。列表里的每一项都必须是字符串。
继续保持练习节奏。
完整题库会在这个浏览器里记住进度,支持按主题筛选,并包含每日一题和错题重练。