科创科普:Python 的「重复劳动」克星——for 循环、while 循环与嵌套

一、为什么计算机最不怕「重复劳动」 如果让你把「你好」打印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 分别怎么写?哪一种更清楚?为什么?

九、一句话总结 循环的本质是「把重复的事交给机器,把判断的事留给自己」。想清楚三件事——重复什么、重复几次、什么时候停——你就已经掌握了编程里最强大的工具之一。