当前位置:首页>python>Python3入门系列 | Day 4: 循环——批量做事不用手写100遍

Python3入门系列 | Day 4: 循环——批量做事不用手写100遍

  • 2026-10-11 08:24:28
Python3入门系列 | Day 4: 循环——批量做事不用手写100遍
大家好,今天聊循环。

如果你写代码的时候,发现自己正在复制粘贴同一段代码好几次,那你大概率需要一个循环。

举个例子:老板让你打印 1 到 100 这 100 个数,你不会真的一行一行写 100 个 print() 吧?

print(1)print(2)print(3)# ... 写到第100行?

正常人不会这么干。循环就是用来解决这个问题的。


Python 里就两种循环

说实在的,你用到的 99% 的场景,就两种:

  1. for 循环 — 遍历一个序列(列表、字符串、range 等等)
  2. while 循环 — 条件为真就一直跑

先记结论:优先用 for,while 只在你知道自己要干什么的时候用。


for 循环:最常用,最安全

基本长相就是这样:

for 变量 in 序列:    做点什么

看几个例子你就懂了:

例1:遍历一个列表

fruits = ["苹果", "香蕉", "橘子"]for fruit in fruits:print(fruit)

输出:

苹果香蕉橘子

这个 fruit 变量在每次循环里,依次取列表里的一个值。

例2:用 range() 生成数字序列

range() 是循环里最常用的函数,专门生成连续整数。

# range(5) 生成 0,1,2,3,4for i inrange(5):print(i)

输出:

01234

注意,range(5) 出来的是 0 到 4,不是 0 到 5。这是新手最容易踩的坑。

range 的三种用法

range(5)       # 0,1,2,3,4range(1, 5)    # 1,2,3,4range(1, 10, 2) # 1,3,5,7,9(步长是2)

记一下:range(起点, 终点, 步长),终点不包含。

例3:打印 1 到 100

回到开头那个问题:

for i inrange(1, 101):print(i)

一行搞定。这才是写代码该有的样子。


while 循环:条件控制

while 的写法更接近口语:当某个条件成立,就一直做。

count = 0while count < 5:print(f"当前计数: {count}")    count += 1# 别忘了加1,不然死循环

输出:

当前计数: 0当前计数: 1当前计数: 2当前计数: 3当前计数: 4

⚠️ 踩坑记录:死循环

新手用 while 最容易犯的错误——忘了让条件最终变成 False。

# 危险!千万不要运行whileTrue:print("我出不去了...")

这会让程序永远跑下去,直到你手动关掉它。

怎么避免?

  • 确保循环体里有一行代码能让条件趋于 False
  • 不确定的时候,用 for 循环代替
  • 测试时,先加个 break 做保险(下面会讲)

break 和 continue:循环的刹车和跳车

break — 提前结束整个循环

for i inrange(1, 100):if i == 5:breakprint(i)

输出:

1234

break 一遇到,循环直接结束,后面的次数都不跑了。

continue — 跳过当前这一次,进入下一次

for i inrange(1, 6):if i == 3:continueprint(i)

输出:

1245

3 被跳过了,其他照常。


else 跟循环也能搭

这点很多老手都不知道:for 和 while 后面可以跟 else。

这个 else 的执行时机是:循环正常结束的时候执行(没被 break 打断的话)。

for i inrange(3):print(i)else:print("循环结束了,没被 break 打断")

输出:

012循环结束了,没被 break 打断

如果是被 break 结束的:

for i inrange(5):if i == 2:breakprint(i)else:print("你不会看到这句话")

输出:

01

else 块里的内容不会执行,因为循环是被 break 中断的。

这个写法在「查找某个元素,找到了就 break,没找到就执行另外的逻辑」的场景里特别好用。


嵌套循环:循环里套循环

一个循环解决一层问题,两层问题就套两层。

for i inrange(1, 4):for j inrange(1, 4):print(f"{i} x {j} = {i * j}")print("------")

这其实就是打印一个 3x3 的乘法表片段。

注意:嵌套层数多了可读性差,一般嵌套两层就到头了。三层以上,建议想想能不能换写法。


实际场景:批量处理文件

假设你有个文件夹,里面有 100 个 txt 文件,你想把所有文件内容合并成一个:

import os# 获取所有 txt 文件files = [f for f in os.listdir(".") if f.endswith(".txt")]# 循环读取并合并all_content = ""for filename in files:withopen(filename, "r", encoding="utf-8") as f:        all_content += f.read()# 写入合并后的文件withopen("merged.txt", "w", encoding="utf-8") as f:    f.write(all_content)print(f"合并完成,共处理了 {len(files)} 个文件")

这就是循环的真正价值——一个简单动作,重复 100 次,代码只用写一遍。


今日总结

概念
一句话记住
for
 循环
遍历序列,最常用
range()
生成数字序列,终点不包含
while
 循环
条件为真就继续
break
立即结束整个循环
continue
跳过当前这次,继续下一次
循环 + else
正常结束才执行,break 打断就不执行

一句话总结:循环就是帮你不重复自己。 能用 for 就用 for,while 留给那些你不知道要跑多少次的场景。

小作业

打印一个 9x9 乘法表(就是九九乘法表那种阶梯形状),提示:用两层循环。

明天讲列表和字典——Python 里最常用的两种数据结构,也是你之后天天打交道的东西。


封面图由 AI 生成

最新文章

随机文章