Python3 循环语句新手实战指南

WEB项目地址:演示地址

① 循环核心概念与生活化类比解析

你想想"循环"在生活里长什么样?

  • 每天早上:闹钟响 → 按掉 → 刷牙 → 洗脸 → 吃早饭。这套动作你重复了 365 天,这就是循环。
  • 快递员派件:拿起一个包裹 → 看门牌号 → 放门口 → 下一个包裹。直到送完所有包裹,循环停止。

Python 里的循环就干两件事:重复做某事 ,以及知道什么时候停

两种主要形式:

  • for 循环:适合"我知道要遍历哪些东西"的场景。比如你手里有一份 10 个包裹的清单,挨个处理。
  • while 循环:适合"我不知道要重复几次,得看条件"的场景。比如猜数字游戏------你猜不对就不停,猜对了才停。

现在脑子里有这个画面就行,后面每个环节都会动手写。


② 开发环境搭建与首个循环代码运行

别一上来就用 PyCharm 那种大家伙,新手容易被界面吓到。

我的推荐(最轻量)

  1. python.org 下载 Python 3.x(勾选"Add Python to PATH")。
  2. 安装完后,按 Win + R,输入 cmd,在命令行里敲 python,看到 >>> 提示符就说明环境好了。
  3. 或者用 VS Code + 插件,也够用。

但最最友好的方式是:直接用在线编辑器 ,比如 pythontutor.comreplit.com,打开就能写,还能看到变量一步步怎么变。

你的第一个循环代码------不用管太多,先跑起来:

python 复制代码
# 打印 3 次 "我开始学循环了!"
for i in range(3):
    print("我开始学循环了!")

把这段代码敲进去(建议手动敲,不要复制),点击运行。如果看到三行文字,恭喜------你已经正式写了第一个循环。

接着改个数字试试:range(5)range(10),看看输出变化。感受一下什么叫"重复执行"。


③ for 循环遍历列表与字符串实操

for 循环最核心的能力是**"逐个取出来处理"**。

场景一:遍历列表(一组数据)

python 复制代码
students = ["小明", "小红", "小刚"]
for name in students:
    print(f"{name},你的作业交了吗?")

执行过程:Python 先把 "小明" 赋值给 name,执行 print;再把 "小红" 赋值给 name,执行 print......直到列表末尾。

你可以试着往列表里加两个名字,再跑一遍。

场景二:遍历字符串(逐个字符)

python 复制代码
word = "Python"
for ch in word:
    print(ch)

输出是 P、y、t、h、o、n 每个占一行。

实用小技巧 :如果你想同时拿到"下标"和"值",用 enumerate

python 复制代码
students = ["小明", "小红", "小刚"]
for index, name in enumerate(students):
    print(f"第{index+1}个同学叫{name}")

这个在日后处理 Excel 数据时极其常用。


④ while 循环条件控制与动态交互实现

while 翻译成人话:只要某条件为真,就一直做

最简单的例子

python 复制代码
count = 0
while count < 3:
    print(f"当前计数:{count}")
    count = count + 1  # 这行极其重要!

如果删掉 count = count + 1count 永远等于 0,永远小于 3------死循环,电脑会卡爆。

动态交互实战:写一个猜数字游戏(不用随机数,先固定答案)

python 复制代码
secret = 7
guess = 0

while guess != secret:
    guess = int(input("猜一个数字:"))
    if guess < secret:
        print("小了")
    elif guess > secret:
        print("大了")

print("恭喜,猜对了!")

运行这段代码,它会一直问你要数字,直到你输入 7。

观察一下:while 的条件是 guess != secret,只要成立就循环。猜对后条件变为 False,循环结束。


⑤ break 与 continue 精准控制流程技巧

这两个词是循环里的"方向盘"。

break:立即终止整个循环,跳出去。

python 复制代码
for i in range(10):
    if i == 5:
        break
    print(i)
# 输出 0 1 2 3 4(到5就停了)

continue:跳过本次循环的剩余代码,直接进入下一次。

python 复制代码
for i in range(5):
    if i == 2:
        continue
    print(i)
# 输出 0 1 3 4(2被跳过了)

实战场景 :你遍历一批用户数据,遇到"已删除"的用户就用 continue 跳过,遇到"管理员"用户就用 break 停止(因为只找第一个管理员)。

python 复制代码
users = ["普通用户", "已删除", "普通用户", "管理员", "普通用户"]
for u in users:
    if u == "已删除":
        continue
    if u == "管理员":
        print("找到管理员了!")
        break
    print(f"处理:{u}")

运行这个,仔细看输出------"已删除"被跳过了,遇到"管理员"后循环直接结束,后面的"普通用户"没机会处理。


⑥ 嵌套循环处理多维数据案例演示

嵌套循环就是"循环里面套循环"。想象一个钟表:秒针转一圈,分针走一格;分针转一圈,时针走一格

二维表格场景:你有 3 个班级,每个班 4 个学生,要逐个点名。

python 复制代码
classes = [
    ["A班-小明", "A班-小红", "A班-小刚", "A班-小丽"],
    ["B班-张三", "B班-李四", "B班-王五", "B班-赵六"],
    ["C班-刘一", "C班-陈二", "C班-杨三", "C班-黄四"]
]

for class_room in classes:          # 外层:遍历每个班
    print(f"开始点名 {class_room[0][:2]}")
    for student in class_room:      # 内层:遍历班里的每个人
        print(f"  {student}")
    print("点名结束\n")

执行时,外层循环走一次,内层循环走完一整轮。所以输出是:A班4个人 → B班4个人 → C班4个人。

九九乘法表是嵌套循环的经典:

python 复制代码
for i in range(1, 10):       # 外层:1到9
    for j in range(1, i+1):  # 内层:1到i
        print(f"{j}×{i}={i*j}", end=" ")
    print()                  # 换行

运行一下,看看是不是你小学背的那个形状。


⑦ 无限循环陷阱识别与安全退出方法

无限循环 :条件永远为 True,代码永远跑不完。

三种常见写法:

python 复制代码
# 写法一:直接写 True
while True:
    print("停不下来")

# 写法二:条件恒成立
i = 0
while i < 10:
    print(i)
    # 忘了写 i += 1

# 写法三:条件逻辑错误
x = 5
while x != 0:
    x = x + 1  # 越加离0越远

安全退出方法

  1. break 做逃生门------这是最推荐的写法:
python 复制代码
while True:
    user_input = input("输入 exit 退出:")
    if user_input == "exit":
        print("退出循环")
        break
    print(f"你输入了:{user_input}")
  1. 设置最大尝试次数,防止意外:
python 复制代码
max_attempts = 5
attempt = 0
while attempt < max_attempts:
    attempt += 1
    # 做某事
  1. 如果真的卡死了 :按 Ctrl + C 强制中断程序(在命令行里有效)。

⑧ 常见缩进错误与逻辑死循环排查

新手 90% 的报错都是缩进问题。Python 用缩进来表示"代码块"------缩进一样,表示属于同一层。

错误示范 1:缩进不一致

python 复制代码
for i in range(3):
    print(i)
  print("完成")   # 前面多了空格,报错 IndentationError

错误示范 2:忘记缩进

python 复制代码
for i in range(3):
print(i)   # 报错,print 必须缩进

逻辑死循环排查三步走

  1. 检查循环变量是否在变化 ------有没有 i = i + 1i += 1
  2. 打印中间值调试 ------在循环里加 print(f"当前 i={i}"),看它有没有朝预期方向变化。
  3. 检查条件方向 ------是 > 还是 <?是 and 还是 or?经常有人把 while i < 10 写成 while i > 10,结果一次都不执行,或者反过来写成 while i != 10i 从 0 开始每次加 3,永远到不了 10,死循环。

一个实用的调试习惯 :写循环时先把 print 加上,确认逻辑对了再删掉。


⑨ 循环性能优化与简洁写法进阶

当你处理的数据量变大(比如一万条以上),循环效率就会变敏感。

优化点 1:减少不必要的计算

python 复制代码
# 不推荐:每次循环都计算 len()
for i in range(len(my_list)):
    process(my_list[i])

# 推荐:直接遍历元素
for item in my_list:
    process(item)

优化点 2:用列表推导式代替简单 for 循环

python 复制代码
# 传统写法
squares = []
for i in range(10):
    squares.append(i * i)

# 简洁写法(列表推导式)
squares = [i * i for i in range(10)]

列表推导式不仅更简洁,执行速度也更快(底层做了优化)。

优化点 3:用 sum()max() 等内置函数代替手写循环

python 复制代码
# 不推荐
total = 0
for n in numbers:
    total += n

# 推荐
total = sum(numbers)

优化点 4:while 能转 for 就转 for

for 循环在 Python 内部做了优化,通常比 while 快一些,而且更安全(不容易死循环)。如果遍历次数是确定的,优先用 for


⑩ 综合实战:构建自动化数据处理脚本

把前面所有知识串起来,做一个学生成绩统计脚本

需求:有一个班级的成绩表(姓名 + 三门课分数),需要计算每个人的总分和平均分,并标记"优秀"(平均 >= 90)和"需努力"(平均 < 60)。

完整代码

python 复制代码
# 数据:每个学生三门课的成绩
students = [
    ["张伟", 88, 92, 78],
    ["李娜", 95, 98, 97],
    ["王强", 45, 52, 38],
    ["赵敏", 70, 75, 80],
    ["陈静", 90, 91, 89]
]

print("=" * 40)
print("学生成绩统计报告")
print("=" * 40)

# 用于统计整体情况
total_scores = []
excellent_count = 0
need_work_count = 0

for student in students:
    name = student[0]
    scores = student[1:]  # 从第2个元素开始取分数
    
    # 计算总分和平均分
    total = sum(scores)
    avg = total / len(scores)
    total_scores.append(total)
    
    # 判断等级
    if avg >= 90:
        level = "优秀 🌟"
        excellent_count += 1
    elif avg < 60:
        level = "需努力 💪"
        need_work_count += 1
    else:
        level = "良好"
    
    # 输出该生信息
    print(f"{name}: 总分{total} 平均{avg:.1f} 【{level}】")

print("=" * 40)
print(f"班级人数:{len(students)}")
print(f"优秀人数:{excellent_count}")
print(f"需努力人数:{need_work_count}")
print(f"全班平均分:{sum(total_scores) / len(total_scores):.1f}")
print("=" * 40)

运行这段代码,你会看到一份完整的成绩报告。

然后你自己动手改造(这一步很重要):

  1. 添加一个新学生数据,看输出是否自动更新。
  2. 把"良好"的门槛改成 70 分以上,看输出变化。
  3. 再加一列"排名"(按总分排序)------提示:用 sorted()key 参数。
  4. 如果遇到分数为负数或超过 100 的数据,用 continue 跳过并提示"数据异常"。

当你把这四点都改完并且跑通,恭喜------你已经能用循环处理真实的数据了。


最后说两句

循环这东西,光看是学不会的,一定要亲手敲、亲手改、亲手把代码搞崩再修好。我建议你把这篇教程里的每一段代码都手动敲一遍,改几个数字看看效果,故意制造个死循环体验一下 Ctrl+C 的救命功能。

遇到问题不要怕,把报错信息复制到搜索引擎里,十有八九有人踩过同样的坑------编程就是从"抄代码"到"改代码"再到"写代码"的过程,而循环就是你迈出的第一步。加油。 🚀

相关推荐
ShirleyWang0121 小时前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s
ZDQNFU1 小时前
ORM之SQLAlchemy教程
后端·python
jeffzhengye1 小时前
Claude-Real-Video:让 Claude 真正看懂视频,0 Token 成本
python·微信
IT知识分享1 小时前
WebP转JPG开发经验:从格式解码到本地批量转换的实践
javascript·python·图片转换
小柯南敲键盘1 小时前
Temu多语言商品图翻译实现方案
人工智能·python
威联通安全存储2 小时前
TS-h1677AXU-RP在工程机械机器人弧焊中的部署
大数据·人工智能·python·机器人
statistican_ABin2 小时前
WHO各国预期寿命影响因素分析与轻量回归预测
大数据·人工智能·python·数据分析·回归
卷无止境3 小时前
Python生成器与惰性求值:从yield说起的一场"暂停魔法"
后端·python
卷无止境3 小时前
从一个装饰器说起:拆解 Python 的 @property
后端·python