# Day_7 · 循环:重复做的事交给程序 > 预计耗时:20~30 分钟 > 后端最常干的事就是"把一堆数据逐个处理"——这正是循环。列表遍历(Day_4)你已经用过了,今天学正式的 `for` 和 `while`。 ## 今日知识点 - `for i in range(n):` 循环 n 次(`range(1, 11)` 是 1~10) - `while 条件:` 条件为真就一直循环 - `break` 跳出循环;`continue` 跳过本次进入下一次 - 累加套路:`total = total + i`(可简写 `total += i`) ## 先学(教程) - 菜鸟教程("循环语句"一节,重点看 range 和 break/continue):https://www.runoob.com/python3/python3-loop.html - B站黑马教程(看讲"循环"的几集):https://www.bilibili.com/video/BV1qW4y1a7fU/ ## 任务(后做) 新建 `day7.py`: 1. 用 `for` 求 1 加到 100 的和,打印结果(应该是 **5050**): ```python total = 0 for i in range(1, 101): total += i print(total) ``` 2. 打印 1~10 的平方: ```python for i in range(1, 11): print(f"{i}的平方是{i ** 2}") ``` 3. 用 `while` 从 10 倒数到 1: ```python n = 10 while n >= 1: print(n) n -= 1 # 别忘了让 n 变小,否则死循环 ``` 4. **进阶(加分)**:打印九九乘法表(用双重 for 循环): ``` 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 ... ``` 提示:外层 `for i in range(1, 10):`,内层 `for j in range(1, i + 1):`, 每行结束用 `print()` 换行。 ## 完成标准 - [ ] 任务 1 输出 `5050` - [ ] 任务 2、3 输出正确且程序能正常结束(没有卡死) - [ ] 能说出 `break` 和 `continue` 的区别 - [ ] (进阶)乘法表正确 **提交方式**:把 `day7.py` 代码贴在当日工单评论里。 ## 参考解答(先做再看) ```python # 1. 求和 total = 0 for i in range(1, 101): total += i print(total) # 5050 # 2. 平方 for i in range(1, 11): print(f"{i}的平方是{i ** 2}") # 3. 倒数 n = 10 while n >= 1: print(n) n -= 1 # 4. 进阶:九九乘法表 for i in range(1, 10): for j in range(1, i + 1): print(f"{j}x{i}={j * i}", end=" ") print() # 换行 ```