← 首页
00:00点开始
学情 用时 0′ 尝试 0 出错 0 归因 0
E 文字期 · 第一课
字符串:一串字符,也能数长度、取单个

前四课处理的都是数字。可程序里还有另一种东西:文字。
文字放进引号里就叫字符串,它和列表一样有长度、有下标。

开场 9 分钟怎么花: 回扣课30"列表 + 循环"(3′)→ 抛"文字能不能也用下标取"(3′)→ 发手帖 + 预告作品《一串字》(3′)。
老师说 word = "TURTLE"——引号里就是一串字符。
len(word) 数出几个字符,word[0] 取第一个。
今天用它的长度画图:字有几个字母,就画几边形。
第三十一种陷阱:拿长度当下标。 len("TURTLE") 是 6,可下标只有 0~5—— 写 word[6] 就 IndexError。 长度是"几个",下标是"第几个",差一个。

第一步 · 差一个的陷阱 09′–23′ · 14 分钟 · 最后一个取不到

陷阱换了(第三十一种)
用长度当下标,永远越界
老师说 这段想取出 TURTLE 的最后一个字母 E。先猜:能取到吗?猜完运行。

盯住 word[len(word)]:长度是 6,可下标只到 5。
想取最后一个,写 word[len(word)-1] 或者更省事的 word[-1]。

老师纪律:别说"要减一"。只问: 「TURTLE 有几个字母?它们的编号是几到几?」

第二步 · 字符串的规矩 23′–37′ · 14 分钟 · 长度与下标差一个

老师说 三条规矩:① 引号里就是字符串;② len() 数个数; ③ 下标从 0 开始,最后一个是 len-1(也可以写 -1)。
字符串和列表在这一点上完全一样。
字符个数
6
最后下标
5
每次转
60°
为什么坚持手推:「长度 6、下标 5」是最容易混的一对。 把六个下标和字符一一写出来,越界那一格自然空着。
休息 1
37′–47′ · 10 分钟 · 站起来动一动
老师说 留个问题:把 word 改成 "CODE",画出来是几边形?
回来验证。

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

老师说 关掉运行。标准骨架用字符串的长度决定边数。
在纸上写:下标是几?这个位置上是哪个字母?每步转多少度?
标准骨架:word = "TURTLE";n = len(word); for i in range(n): forward(60); left(360 / n)——六边形。
人肉电脑的落点:学生要能说出「6 个字母 → 六边形, 因为每步转 360÷6=60 度」——说不出就是没把 len 和边数连起来。

第四步 · 自己搭 65′–85′ · 20 分钟 · 用你的字决定图形

老师说 写一个字符串,用 len() 决定边数画出来。要求三条:
① 有引号字符串 ② 用 len() 取长度(别写死数字) ③ 用这个长度控制循环或转角
巡场只问三句:字符串里几个字符?len 拿到的数用在哪? 转角是怎么算出来的?
休息 2
85′–91′ · 6 分钟 · 伸个懒腰
老师说 回来改一处:把 word 改成 "STAR"(4 个字符),看图形怎么变。

第五步 · 改数试试 91′–105′ · 14 分钟 · 换个字,换种图形

老师说 只改字符串:"TURTLE" 改成 "STAR"。
先猜:变成几边形?每步转多少度?再运行。
这一步的收获:循环一个字没改, 只换了四个字母,就从六边形变成正方形——数据决定图形。

第六步 · 读码迁移 105′–120′ · 15 分钟 · 读出下标是哪个字母

老师说 最后 15 分钟不写新代码——读。注意有几个下标是算出来的。
读码四步:① 字符串几个字符 → ② 下标怎么算 → ③ 每次取到哪个字符 → ④ 图形什么样。
  • 填手帖:本课三问——几个字符 / 最后下标是几 / len 用在哪
  • 家庭挑战:把《一串字》讲给爸妈听,说清长度和下标为什么差一个
收尾话术(家长版): 「他今天学的是字符串——所有名字、密码、文字都是它。 您可以问他:6 个字符的最后一个下标是几?他说得清,就是真懂。」

海龟的画布

(摆好卡片,按运行)

对应的 Python 代码 实时同步

本课硬事实 老师自查