挨个处理一串东西。比第三章的「数数循环」更省事——不用自己管编号。
设 同学们 = ["小明", "小红", "小刚"]
遍历 同学们 每个 名字
打印(名字)
输出:
小明
小红
小刚
遍历 同学们 每个 名字 读作「遍历同学们,每个(叫它)名字」。它自动从头走到尾,把每个元素轮流交给 名字,不用像第三章那样自己写 i = i + 1。
💡 语序是「集合在前、名字在后」——「遍历成绩的每个名字」,自然中文。
不要写成英文for x in y那种「名字 在 集合」的倒装。
| 遍历什么 | 得到什么 |
|---|---|
| 列表 | 每个元素 |
| 字典 | 每个标签 |
| 字符串 | 每个字 |
| 范围 | 一串数字 |
# 字典:遍历标签
设 成绩 = {"小明": 85, "小红": 92}
遍历 成绩 每个 名
打印(名) # 小明 / 小红
# 字符串:逐字
遍历 "你好" 每个 字
打印(字) # 你 / 好
范围 造出一串数字,配合遍历是常用套路:
遍历 范围(5) 每个 i
打印(i) # 0 1 2 3 4
三种写法:
| 写法 | 得到 |
|---|---|
范围(5) |
0, 1, 2, 3, 4 |
范围(1, 6) |
1, 2, 3, 4, 5(从 1 到 6 的前一个) |
范围(1, 10, 2) |
1, 3, 5, 7, 9(每次加 2) |
遍历 范围(1, 6) 每个 i
打印(i) # 1 2 3 4 5
注意
范围(1, 6)是 1 到 5,不含 6。和编号从 0 开始一样,是约定俗成。
统计总分(遍历列表):
设 分数们 = [80, 90, 70]
设 总分 = 0
遍历 分数们 每个 分
总分 = 总分 + 分
打印(总分) # 240
打印每个标签和值(遍历字典的标签):
设 成绩 = {"小明": 85, "小红": 92}
遍历 成绩 每个 名
打印(名 + ":" + 文本(成绩[名]))
# 小明:85
# 小红:92
遍历 里的那个名字(比如 名字、i)只在循环里有效,出了循环就没了:
遍历 范围(3) 每个 i
打印(i)
# 这里再写 i,会报 CN0302(未声明)
数字、布尔、空都不能遍历,会报 CN0309:
遍历 42 每个 x
# 错误 CN0309:整数不能遍历
写一个程序:打印 范围(2, 10, 2) 里的每个数(应该是 2 4 6 8)。
遍历 范围(2, 10, 2) 每个 i
打印(i)
下一章:八、内置函数速查