← 首页
00:00点开始
学情 用时 0′ 尝试 0 出错 0 归因 0
E 文字期 · 第三课
一句话拆成几个词,再用它们画图

上一课一个字符一个字符看。可一句 "AA BBB CC" 真正有用的是几个词。
今天学 split:用分隔符把字符串切成一个列表。

开场 9 分钟怎么花: 回扣课32"逐字遍历"(3′)→ 抛"怎么按词处理"(3′)→ 发手帖 + 预告作品《拆开再拼上》(3′)。
老师说 line.split(" ") = 按空格切开,得到一个列表。
切完就能用列表那一套:len(parts) 数几个词,for w in parts 逐个处理。
分隔符写什么,就在哪儿切。
第三十三种陷阱:分隔符写错。 字符串里是空格,却写 split(",")——切不动,整句变成 1 个元素。 它不报错,只是让你少画好几段。

第一步 · 切不动的陷阱 09′–23′ · 14 分钟 · 怎么只画了一段

陷阱换了(第三十三种)
分隔符不对,split 只给你一个整体
老师说 这段想按词画四段:AA、BBB、CC、DDDD。先猜:画出来几段?猜完运行。

盯住 split(","):字符串里根本没有逗号,全是空格。
所以切不动,parts 里只有 1 个元素——那 13 个字符的一整句。

老师纪律:别说"分隔符错了"。只问: 「这句话里,词和词之间是什么符号?」

第二步 · 切与拼 23′–37′ · 14 分钟 · split 切,+ 拼,in 查

老师说 三个动作一起记:split 切(字符串 → 列表)、+ 拼(两个字符串接起来)、 in 查(这一段里有没有某个字)。
切完的结果是列表,所以能用 len、能遍历、能取下标。
小技巧:split() 括号里什么都不写,就是按空白(空格 / 换行 / Tab)切——最常用。
第几个词
1
这个词几个字母
2
这段多长
40
为什么坚持手推:"切完是什么"最容易含糊。 把每个词、每个词的字母数写出来,切没切开一眼就看得出。
休息 1
37′–47′ · 10 分钟 · 站起来动一动
老师说 留个问题:如果这句话里是两个空格连着,会切出空词吗?
回来验证。

第三步 · 人肉电脑 47′–65′ · 18 分钟 · 不许按运行

老师说 关掉运行。先把句子按空格切开,写出四个词。
再一个个数:每个词几个字母?这段画多长?
标准骨架:parts = line.split(" ") → 四个词; for w in parts: forward(len(w) * 20); left(90)。
人肉电脑的落点:学生要能说出「len(w) 数的是这个词的字母数, 不是整句」——说不出就是没把切分当回事。

第四步 · 自己搭 65′–85′ · 20 分钟 · 写一句你自己的

老师说 写一句用空格隔开的词,切开后按字母数画图。要求三条:
① 用 split(" ") 切 ② 遍历切出来的列表 ③ 用 len(w) 决定长度
巡场只问三句:句子里的分隔符是什么?切完有几个词? len(w) 数的是谁?
休息 2
85′–91′ · 6 分钟 · 伸个懒腰
老师说 回来改一处:把其中一个词改长(CC 改成 CCCC),看那条边怎么变。

第五步 · 改数试试 91′–105′ · 14 分钟 · 改一个词,一条边变长

老师说 只改一个词:CC 改成 CCCC。
先猜:第几段会变长?变成多长?再运行。
这一步的收获:循环一个字没改, 只给一个词多加了两个字母,第三段就变长——数据决定图形。

第六步 · 读码迁移 105′–120′ · 15 分钟 · 查查它在不在

老师说 最后 15 分钟不写新代码——读。这段用 in 查字符,说出最后打印几。
读码四步:① 切成几个词 → ② 每个词里有什么 → ③ 条件成立几次 → ④ 结果几。
  • 填手帖:本课三问——分隔符是什么 / 切出几个词 / len 数的是谁
  • 家庭挑战:把《拆开再拼上》讲给爸妈听,说清 split 和 in 各干什么
收尾话术(家长版): 「他今天学的是拆和查——搜索关键词、统计词频都是这个套路。 您可以问他:分隔符写错会怎样?他说得清,就是真懂。」

海龟的画布

(摆好卡片,按运行)

对应的 Python 代码 实时同步

本课硬事实 老师自查