一、为什么计算机最不怕「重复劳动」 如果让你把「你好」打印100遍,手写100行 print("你好") 显然很傻。计算机最擅长的事情恰恰是重复,而让它重复的工具就是循环。Python里最常用的两种循环是 for 和 while,学会它们,你就能用三行代码干完一百行的活。
二、for 循环:已经知道要数多少次的时候用 for 循环的句型是:for 变量 in 一串东西: 然后缩进写要重复的事。 例子:把 1 到 5 依次打印出来 for i in range(1, 6): print(i) 这里 range(1, 6) 表示一串数字 1、2、3、4、5。注意它是「包前不包后」:写6只到5,这是初学者最容易踩的第一个坑。想打印1到5就要写 range(1, 6)。 range 还可以只写一个数:range(5) 表示 0、1、2、3、4(从0开始,共5个数);写三个数 range(2, 11, 2) 表示 2、4、6、8、10,第三个参数叫「步长」。
三、while 循环:不知道要数多少次,只知道「什么时候停」 while 的句型是:while 条件: 缩进写要做的事。条件成立就重复,不成立就停。 例子:从1开始加,加到超过100就停 total = 0 n = 1 while total <= 100: total = total + n n = n + 1 print(total, n) 思路是「边加边判断」,这正是while的用武之地:次数事先算不出来,只能靠条件收尾。 死循环提醒:如果条件永远成立,比如 while True: 后面忘了写跳出(break),程序就会一直转到卡住。写while时先问自己一句:什么情况下这个条件会变成假?
四、循环的两大必备搭档:累加器与计数器 1. 累加器:一个变量,专门负责「越加越大」。上面求和的 total 就是累加器。 2. 计数器:一个变量,专门负责「数出现了几次」,每次加1。 例题:统计 1 到 100 中能被 3 整除的数有多少个,并把它们加起来。 count = 0 s = 0 for i in range(1, 101): if i % 3 == 0: count = count + 1 s = s + i print(count, s) % 是取余运算,i % 3 == 0 表示「i除以3余数为0」,也就是能被3整除。这段代码里 for 管重复,if 管挑人,count 记个数,s 记总和——四样东西各司其职,这就是编程的基本功。
五、嵌套循环:循环里面再放循环 嵌套循环的经典例题就是九九乘法表。 for i in range(1, 10): for j in range(1, i + 1): print(j, "x", i, "=", i * j, end=" ") print() 外层 i 代表「第几行」,内层 j 代表「这一行里的第几项」。内层的范围写成 range(1, i+1),所以第一行只有1个算式,第二行有2个……第九行有9个。理解嵌套循环的诀窍是:外层走一步,内层走一整圈。 读代码时按这两个层次逐层拆,就不会绕晕。
六、例题三连(带讲解) 例1:求 1+2+3+…+100。 s = 0 for i in range(1, 101): s = s + i print(s) 答案5055?动手改一下:范围到101是1到100,结果是5050。很多人会写成 range(1, 100) 而少加了100,这就是「包前不包后」的坑。 例2:打印 5、4、3、2、1 倒计时,最后输出「发射!」 for i in range(5, 0, -1): print(i) print("发射!") 步长写 -1 就是倒着数。 例3:猜一个数,猜错就继续猜。 secret = 7 guess = 0 while guess != secret: guess = int(input("猜一个1到10的数:")) print("猜对了!") 次数不确定、靠条件停下,这就是while的典型场景。
七、常见错误清单 1. 忘了冒号:for/while 行末尾必须有英文冒号。 2. 缩进错了:循环体必须缩进(一般4个空格),缩进不对程序会报错或者只执行一次。 3. range 边界:range(1, 5) 只有1到4,不含5。 4. 死循环:while 的条件没有变化,永远为真。 5. 累加器忘记清零:用完一次要重新赋0才开始下一轮统计。
八、练习 1. 基础题:用 for 循环打印 1 到 20 中的所有偶数。 2. 计算题:求 1×2×3×…×10 的结果(用累乘器,初值设为1而不是0——想想为什么不能是0)。 3. 应用每题:统计 1 到 200 中既能被 5 整除、又能被 7 整除的数有几个。 4. 挑战题:打印「直角三角形」星号图案,第一行1个星、第二行2个星……第五行5个星(提示:外层管行,内层管每行几个星)。 5. 思考题:同一个任务(把「你好」打印10遍),用 for 和 while 分别怎么写?哪一种更清楚?为什么?
九、一句话总结 循环的本质是「把重复的事交给机器,把判断的事留给自己」。想清楚三件事——重复什么、重复几次、什么时候停——你就已经掌握了编程里最强大的工具之一。