Python 清单与循环
进阶清单用方括号、索引由 0 开始;len/sum/max/append 是常用操作;for 逐个处理清单,while 按条件重复,小心无限循环。
- 清单用方括号 [ ],索引由 0 开始。
- len、sum、max、min、append 是清单常用操作。
- 平均分一行搞定:sum(清单) / len(清单)。
文体小知识:编程教学课每个概念都配一段可以亲手试的代码例子,照住输入、改一改,最快学会。
§课文原文 Passage
1清单(List)把多个资料放在一起,用方括号包住、逗号分隔,例如 scores = [80, 92, 75]。清单由 0 开始编号:scores[0] 是 80、scores[1] 是 92、scores[2] 是 75。这个「由 0 开始」的索引(Index)是初学者最容易搞错的地方。
2清单有现成的操作:len(scores) 数长度、sum(scores) 求总和、max(scores) 找最大值、scores.append(60) 在尾端加入新项目。计三科平均分只需一行:sum(scores) / len(scores)。这些工具令处理一班人的分数变得轻而易举。
3for 回圈适合「逐个处理」清单:for s in scores: 会依次把 80、92、75 指定给 s,回圈体(缩排的部分)每轮执行一次。while 回圈则在条件成立时不停重复,例如 while total < 100: 继续加数。用 while 时必须确保条件最终会不成立,否则就会变成停不下来的无限循环。
4实际应用:老师用清单存全班分数,for 回圈逐个检查是否及格;游戏用 while 回圈保持角色行走,直到生命值归零。清单加循环,是程式处理大量资料的基本功,也是中二编程的核心技巧。
1重点摘要 Summary
清单用方括号、索引由 0 开始;len/sum/max/append 是常用操作;for 逐个处理清单,while 按条件重复,小心无限循环。
2生字卡 Vocabulary
把多个资料按顺序放在一起的资料类型,用方括号表示,例如 [80, 92, 75]。
清单中每个元素的编号,由 0 开始;scores[0] 是第一个元素。
清单中的每一个项目,可以混放数字和文字。
在清单尾端加入新元素的方法,例如 scores.append(60)。
回传清单中元素的数目,例如 len([10, 20, 30]) 是 3。
逐个处理清单或固定次数重复的回圈,例如 for s in scores:。
只要条件成立就重复执行的回圈,例如 while total < 100:。
条件永远成立、停不下来的 while 回圈,通常是忘了更新变数。
产生整数序列配合 for 使用,包头不包尾:range(1, 6) 是 1 至 5。
3逐步讲解 Steps
- 建立清单清单(List)把多个资料集中存放,写法是用方括号包住、逗号分隔,例如 scores = [80, 92, 75]。执行 print(scores) 会显示整个清单 [80, 92, 75]。清单可以混合不同类型的资料,例如 ['小明', 12, 'S1A'] 同时存放姓名、年龄与班别。生活应用:老师把全班分数存入一个清单,购物程式把货品名称存入清单,一个变数便管理大量资料,避免建立 scores1、scores2、scores3 这类混乱的变数名。
- 索引由 0 开始清单的编号(索引)由 0 开始:scores[0] 是 80,scores[1] 是 92,scores[2] 是 75。三个元素的清单,合法索引只有 0、1、2;若写 scores[3],Python 会报 IndexError 错误,因为第 4 个位置并不存在。「由 0 开始」是初学者最容易出错之处:直觉上第一个是 1 号,程式世界却是 0 号。最后一个元素也可用 scores[-1] 存取,-1 代表倒数第一,-2 代表倒数第二,处理「取最后一项」特别方便。
- 常用内建操作清单配备现成工具:len(scores) 传回长度 3;sum(scores) 求总和 247;max(scores) 找最大值 92;min(scores) 找最小值。scores.append(60) 在尾端加入新元素,清单变成 [80, 92, 75, 60],再查 len(scores) 得 4。这些操作组合起来威力强大:一行 average = sum(scores) / len(scores) 便能计算平均,三科或三十科都适用,程式完全不必修改,这正是程式相对人手计算的最大优势。
- for 回圈逐个处理for 回圈适合逐个处理清单元素:for s in scores: print(s) 依次印出 80、92、75,变数 s 每轮轮流代表一个元素。缩排(行首空格)标示哪些语句属于回圈体:print(s) 有缩排,每轮执行一次;没有缩排的语句只在回圈结束后执行一次。缩排错误是初学常见问题:该缩排的不缩排,语句便只执行一次;不该缩排的却缩排,程式会报 IndentationError,无法运行。
- for 配合 rangerange 让 for 回圈按数列重复:for i in range(1, 6): print(i) 印出 1, 2, 3, 4, 5,因为 range(1, 6) 包含起点 1 但不包含终点 6,即「包头不包尾」。range(3) 由 0 开始,产生 0, 1, 2;range(2, 11, 2) 额外指定步长 2,产生 2, 4, 6, 8, 10。想印五次「练习完成」,可写 for i in range(5): print("练习完成")。包头不包尾的规则必须牢记:想印到 5,就要写 range(1, 6)。
- while 按条件重复while 回圈在条件成立时不停重复:n = 1 之后,while n <= 3: print(n) 与 n = n + 1 两句配合,印出 1, 2, 3 后停止。若忘记写 n = n + 1,n 永远是 1,条件永远成立,程式永不停歇,称为无限循环,只能强制关闭。使用 while 的纪律是确保条件最终会不成立:循环体内必须有语句令条件走向终结。游戏中「角色继续行走直至生命值归零」,便是典型的 while 应用场景。
- 清单与回圈的综合应用清单与回圈配合是处理大量资料的基本功。例:全班分数 [70, 85, 90, 55],一行 for s in scores: 配合 if s >= 50: print("合格") 便能逐科判定是否及格;再以 sum(scores) / len(scores) 计算平均。此写法的优势是规模不变:四科变四十科,程式一字不改。老师统计成绩、商店清点存货、程式逐行读取档案,用的都是同一套「清单加回圈」的组合,值得彻底熟练,成为条件反射。
4图解 Diagrams
5例题示范 Example
例题:写程式计算 [70, 85, 90, 55] 四科分数的平均,并逐科印出是否及格(50 分或以上)。
- scores = [70, 85, 90, 55];总和 sum(scores) = 300。
- 平均 = 300 ÷ 4 = 75.0,用 sum(scores) / len(scores) 计算。
- for s in scores: 依次检查 — 70 ≥ 50 合格、85 合格、90 合格、55 合格。
- 如果有科是 45,就会印「不合格」— 判断写在回圈内,每个分数都会被检查一次。
- 答案:平均 75.0;四科全部 ≥ 50,全部合格。核心写法:for s in scores: if s >= 50: print(s, "合格")。
6常见错误 Mistakes
75 题快测 Quick check
Q1nums = [4, 8, 15],nums[0] 是多少?
Q2len([10, 20, 30, 40]) 的结果是什么?
Q3scores = [60, 45];执行 scores.append(90) 之后,清单变成什么?
Q4for i in range(3): print(i) 会印出什么?
Q5以下哪句会造成无限循环?A. while n < 5: n = n + 1 B. while n < 5: print(n)(n 永远是 3)
8重点回顾 Recap
- 清单用方括号 [ ],索引由 0 开始。
- len、sum、max、min、append 是清单常用操作。
- 平均分一行搞定:sum(清单) / len(清单)。
- for 适合逐个处理清单;range 包头不包尾。
- while 按条件重复,回圈内必须有改变条件的语句,否则无限循环。