字符串基础
掌握字符串的创建、索引、切片和常用方法
- 理解字符串是字符序列
- 掌握正索引和负索引
- 掌握切片语法
- 学会常用字符串方法
- 了解 f-string 格式化
创建字符串
字符串就是一段文字,用引号包裹。单引号、双引号都可以,效果完全一样:
字符串本身带引号的话,要么用不同的引号包,要么用反斜杠 \ 转义:
字符串是不可变的
字符串一旦创建,就不能修改它的内容。你看到的「修改」其实是创建了新字符串:
字符串不可变性有个性能上的实际影响:循环里用 += 拼接字符串会很慢,每次都会创建新字符串。Python 开发者拼大量字符串时,都用 ''.join(list),效率高。另外 Python 有个优化机制叫「字符串驻留」(interning),短字符串会被缓存复用,所以写 a = "hello"; b = "hello" 时,a 和 b 可能指向同一个对象。注意:别依赖这个行为。比内容用 ==,比身份用 is。
字符串索引
字符串里每个字符都有编号,从 0 开始数。用负数的话就从末尾倒着数,-1 对应最后一个字符:
索引超出范围时,Python 会报 IndexError。比如 s = "Py",取 s[5] 就会报错,因为这个字符串只有索引 0 和 1。长度为 n 的字符串,正索引范围是 0 到 n-1。
s = "Hello"
print(s[1])
print(s[-1])切片:截取一段
切片是 Python 最实用的特性之一。语法是 [起始:结束:步长],记清楚左闭右开:包含起始位置的元素,不包含结束位置的元素。
切片非常安全:即使索引超出范围也不会报错,Python 会自动截取到边界:
s = "abcdef"
print(s[1:4])
print(s[::-1])字符串拼接与重复
常用方法
字符串自带很多实用方法。注意:这些方法都返回新字符串,不修改原字符串。
f-string 格式化(重点!)
f-string 是 Python 最常用的字符串格式化方式,在字符串前加 f,用花括号嵌入变量:
f-string 比用 + 做字符串拼接更简洁、可读性更好,是 Python 3.6+ 推荐的写法。
"Hello"[1:4] 的结果是?
"hello"[1] 的值是?
"Python"[-1] 的值是?
"Python"[::2] 的值是?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。
挑战任务
字符串操作
从 "Hello, World!" 中提取 "World" 并转为大写输出。
课后作业
名字反转
输入名字,用切片 [::-1] 输出反转后的名字。