第7章 循环

发布时间:

7.1 什么是循环?

循环就是让计算机重复做一件事
计算机最厉害的本领就是不厌其烦地重复。

想象一下:如果让你抄 100 遍“我要好好学习”,你会累坏。但计算机可以在 1 秒内完成。

7.2 for 循环:重复固定次数

for 循环像喊口号:“跑 5 圈!”

for i in range(5):
    print("第", i+1, "次说:我爱编程!")

输出:

js
第 1 次说:我爱编程!
第 2 次说:我爱编程!
第 3 次说:我爱编程!
第 4 次说:我爱编程!
第 5 次说:我爱编程!
   

解释: - range(5) 表示从 0 到 4,一共 5 个数:0, 1, 2, 3, 4 - i 是循环变量,每次循环它的值会变 - 循环体是缩进的代码

7.3 range 的更多用法

写法生成序列说明
range(5)0, 1, 2, 3, 4从 0 开始,5 个数字
range(1, 6)1, 2, 3, 4, 5从 1 开始,到 5(不包括 6)
range(2, 10, 2)2, 4, 6, 8从 2 开始,每次加 2,小于 10
range(10, 0, -1)10, 9, 8, ..., 1倒着数,每次减 1
for x in range(1, 6):
    print(x)

输出:1 2 3 4 5

for x in range(2, 11, 2):
    print(x)

输出:2 4 6 8 10

7.4 while 循环:只要条件成立就重复

while 循环像复读机:“只要老师还没说停,就一直读。”

count = 1
while count <= 5:
    print("这是第", count, "遍")
    count = count + 1   # 每次加 1,不然会永远循环!

输出:

js
这是第 1 遍
这是第 2 遍
这是第 3 遍
这是第 4 遍
这是第 5 遍
   

⚠️ 小心死循环:如果忘记 count = count + 1count 永远是 1,循环就永远停不下来。
所以一定要记得改变条件中的变量。

7.5 break 和 continue

  • break:立刻跳出整个循环
  • continue:跳过本次循环,继续下一次
for i in range(10):
    if i == 3:
        continue   # 跳过 3
    if i == 6:
        break      # 到 6 就停止
    print(i)

输出:

js
0
1
2
4
5
   

7.6 嵌套循环

循环里面还可以有循环,这叫嵌套循环

for i in range(3):
    for j in range(2):
        print("i =", i, "j =", j)

输出:

js
i = 0 j = 0
i = 0 j = 1
i = 1 j = 0
i = 1 j = 1
i = 2 j = 0
i = 2 j = 1
   

7.7 循环中的 else

forwhile 循环后面可以加 else
如果循环没有break 打断,就会执行 else 的内容。

for i in range(3):
    print(i)
else:
    print("循环正常结束")

输出:

js
0
1
2
循环正常结束
   
for i in range(3):
    if i == 1:
        break
    print(i)
else:
    print("循环正常结束")

输出:

js
0
   

因为被 break 打断,else 没有执行。

📝 第7章 练习题

  1. for 循环打印数字 1 到 10。

  2. while 循环打印数字 10 到 1(倒着数)。

  3. 下面代码会输出什么?

for i in range(3):
    print("第", i, "次")
  1. 计算 1 到 100 的和。

  2. 挑战题:打印乘法口诀表(1×1=1 到 9×9=81)。

点击查看答案 1. ```python for i in range(1, 11): print(i) ``` 2. ```python n = 10 while n >= 1: print(n) n = n - 1 ``` 3. ``` 第 0 次 第 1 次 第 2 次 ``` 4. ```python total = 0 for i in range(1, 101): total = total + i print(total) # 5050 ``` 5. ```python for i in range(1, 10): for j in range(1, i+1): print(i, "×", j, "=", i*j, end=" ") print() # 换行 ```