学径XUEJING · 个人学习平台通知设置

课程库 AI 主线 程序思维基础 › 第 3

字符串处理 —— 日常最高频的文本操作

普通课50 分钟

本课导读

不管你将来做什么方向,程序处理的数据里一大半是文本:用户输入、表格单元格、网页内容、AI 的回答……全是字符串。本课集中学最高频的一批字符串操作:清洗(去空格、替换、统一大小写)、切片(取一段)、拆分(切成列表)。学完它们,"把乱糟糟的文本整理干净"就是你的新技能。

字符串方法:自带的工具腰带

字符串自带一批"方法"——用点号调用的专属操作(列表的 .append() 你已经用过,同一个语法家族):

Python

最后一行是重要观念:字符串方法不修改原字符串,而是返回一个新的。想留住结果,就用变量接住:clean = raw.strip()

真实场景里它们常常连环出手(链式调用,从左到右依次执行):

Python

这个 .strip().lower() 组合,是数据清洗世界的"洗手液"——阶段 1 用 pandas 处理表格时,你会成千上万次地用到同款思路。

切片:从一串里取一段

上一课列表用 [索引] 取一个元素,其实还能用 [起点:终点]一段——这叫切片,字符串同样适用:

Python

规则和 range 一脉相承:含头不含尾;省略起点=从头开始,省略终点=到尾结束;负数照旧从尾巴数。列表切片语法完全相同(nums[1:3]),一次学习两处通用。

split:把一句话切成一串词

.split(分隔符) 把字符串按分隔符切开,返回一个列表——字符串世界和列表世界的传送门:

Python

第一个例子暗藏玄机:"小雨,28,上海,设计师" 正是 CSV 表格文件里一行数据的样子——split 就是你未来读表格数据的原始形态(阶段 1 的 CSV 课会正式相认)。

提示

in 对字符串同样好使:"错误" in log_text 判断一段文字里有没有出现某个词——配合 if,就是最朴素的文本筛选器。加上 len()(数字符数)你已经集齐字符串的"侦查三件套":in 查有没有、len 量多长、切片取哪段。

✍️ 练习

练习 1:整理签到名单

把乱糟糟的签到名字清洗干净:去两端空格、统一小写,打印整理后的名单。

Python
✅ 参考答案
names = ["  ALICE ", "bob  ", " Charlie"]

for name in names:
    clean = name.strip().lower()
    print(clean)

列表遍历 + 链式清洗——两课的知识点在一行里会师。

练习 2:手机号打码

把手机号中间四位换成 ****,输出如 138****1111。用切片拼出来。

Python
💡 提示

前三位是 phone[:3],后四位是 phone[-4:],中间用 "****",加号拼接或 f-string 都行。

✅ 参考答案
phone = "13800001111"

masked = phone[:3] + "****" + phone[-4:]
print(masked)

打码、取文件扩展名、截前 N 字做摘要——切片的日常全在这类"取头取尾"里。

练习 3:统计出勤(挑战)

考勤记录是一个逗号分隔的字符串。统计出勤("到")的次数和缺勤("缺")的次数。

Python
💡 提示

先 split 成列表,再遍历计数(两个计数器,或者复习上一课的字典计数法)。

✅ 参考答案
record = "到,到,缺,到,缺,到,到"

days = record.split(",")
present = 0
absent = 0
for d in days:
    if d == "到":
        present = present + 1
    else:
        absent = absent + 1

print(f"出勤 {present} 次,缺勤 {absent} 次")

split 把字符串问题变成列表问题,然后循环 + if 收割——这条流水线値得刻进肌肉记忆。

随堂测验

随堂测验0 / 5 题正确

1. s = " AI ",执行 s.strip() 之后,s 本身变成什么?

2. s = "abcdef",s[1:4] 是什么?

3. "a,b,c".split(",") 的结果是?

4. 清洗用户输入的邮箱(可能有多余空格和大小写混乱),最合适的组合是?

5. 取文件名 "report.xlsx" 的最后 4 个字符(扩展名 xlsx),写法是?

本课小结

  • 清洗三板斧:.strip() 去空白、.lower()/.upper() 统一大小写、.replace() 替换——都返回新字符串,记得接住
  • 切片 [起:止]:含头不含尾,省略即到头/到尾,负数从尾数;列表通用
  • .split() 把字符串切成列表,是文本处理流水线的第一站(也是 CSV 的前世)
  • 侦查三件套:in 查有没有、len() 量多长、切片取哪段

下一课是本单元压轴的语法:函数——把你写过的代码打包成可以反复使用的零件。

划选正文任意文字可高亮、批注或加入复习卡

讨论

载入中…