13.Python中while循环完全指南

文章目录

    • [第一部分:while 循环是什么?](#第一部分:while 循环是什么?)
      • [一、while 循环的概念](#一、while 循环的概念)
      • [二、最简单的 while 示例](#二、最简单的 while 示例)
      • [三、条件为 True / False 时会发生什么](#三、条件为 True / False 时会发生什么)
      • [四、用 while 做"用户输入直到满足条件"](#四、用 while 做“用户输入直到满足条件”)
    • [第二部分:break ------ 立即退出循环](#第二部分:break —— 立即退出循环)
      • [五、break 的作用](#五、break 的作用)
      • [六、break 示例:输入 quit 退出](#六、break 示例:输入 quit 退出)
      • [七、break 只结束"当前这一层"循环](#七、break 只结束“当前这一层”循环)
    • [第三部分:循环中使用 continue](#第三部分:循环中使用 continue)
      • [八、continue 的作用](#八、continue 的作用)
      • [九、continue 示例:只处理正数](#九、continue 示例:只处理正数)
      • [十、break 和 continue 对比](#十、break 和 continue 对比)
    • [第四部分:使用 while 循环处理列表](#第四部分:使用 while 循环处理列表)
      • [十一、为什么用 while 处理列表?](#十一、为什么用 while 处理列表?)
      • [十二、while 循环中逐个"移走"列表元素](#十二、while 循环中逐个“移走”列表元素)
      • [十三、while + 列表:把元素从一个列表移到另一个列表](#十三、while + 列表:把元素从一个列表移到另一个列表)
      • [十四、while 中删除列表中满足条件的元素(注意陷阱)](#十四、while 中删除列表中满足条件的元素(注意陷阱))
    • [第五部分:使用 while 循环处理字典](#第五部分:使用 while 循环处理字典)
      • [十五、while 与字典的典型用法](#十五、while 与字典的典型用法)
      • [十六、例:用 while 收集用户输入并存入字典](#十六、例:用 while 收集用户输入并存入字典)
      • [十七、例:while 中根据字典内容决定是否继续](#十七、例:while 中根据字典内容决定是否继续)
    • 第六部分:设置活动标志(活动标志控制循环)
      • 十八、什么是"活动标志"
      • [十九、用活动标志控制 while:菜单示例](#十九、用活动标志控制 while:菜单示例)
      • [二十、活动标志 + 多个退出条件](#二十、活动标志 + 多个退出条件)
    • 第七部分:综合示例与小结
      • [二十一、综合示例:while + 列表 + break + 活动标志](#二十一、综合示例:while + 列表 + break + 活动标志)
      • [二十二、while 相关小结表](#二十二、while 相关小结表)
      • [二十三、与 for 的简单对比](#二十三、与 for 的简单对比)

https://www.quanzhankaige.com/python13/

本文档面向零基础新手,详细讲解 while 循环 是什么、breakcontinue 的用法、如何在循环中处理列表和字典 ,以及用活动标志控制循环,并配有大量示例。


第一部分:while 循环是什么?

一、while 循环的概念

while 是 Python 里的一种循环语句 :只要条件为真(True) ,就会反复执行下面缩进的代码块;条件变成**假(False)**时,循环结束,程序继续执行循环后面的代码。

可以理解为:

  • "当......的时候,就一直做......"
  • 例如:当用户没输入"退出"时,就一直让用户输入;当列表里还有待处理项时,就一直处理。

基本语法:

python 复制代码
while 条件:
    要重复执行的代码(缩进)

注意:

  • 条件后面必须加冒号 :
  • 循环体必须缩进(一般 4 个空格),和 if 一样

二、最简单的 while 示例

例 1:从 1 数到 5

python 复制代码
count = 1

while count <= 5:
    print("当前数字:", count)
    count = count + 1   # 重要:要让 count 变化,否则条件永远为真,变成死循环!

print("循环结束")

输出:

text 复制代码
当前数字: 1
当前数字: 2
当前数字: 3
当前数字: 4
当前数字: 5
循环结束

执行过程简述:

  1. 一开始 count 是 1,count <= 5 为 True,进入循环,打印 1,然后 count 变成 2。
  2. 再次判断 count <= 5,仍为 True,打印 2,count 变成 3。
  3. 如此反复,直到 count 变成 6 时,count <= 5 为 False,跳出循环,执行后面的 print("循环结束")

新手最容易犯的错:忘记在循环里改变条件相关的变量 ,导致条件永远为 True,循环停不下来(死循环)。例如:

python 复制代码
# 错误示例:count 从不增加,条件永远为 True
count = 1
while count <= 5:
    print(count)
    # 忘记写 count = count + 1  →  死循环!

三、条件为 True / False 时会发生什么

情况 行为
条件为 True 执行循环体,执行完再判断条件,若仍为 True 继续循环
条件为 False 不进入循环体(或跳出循环),执行循环后面的代码

一次都不执行的情况: 如果第一次判断时条件就是 False,循环体一次都不会执行。

python 复制代码
n = 10
while n < 5:    # 10 < 5 为 False,直接跳过循环
    print(n)
    n = n + 1
print("over")  # 只打印 over

四、用 while 做"用户输入直到满足条件"

例:不断让用户输入,直到输入的数字在 1~10 之间

python 复制代码
num = 0   # 先给一个让条件为 True 的值,才能进入循环

while num < 1 or num > 10:
    num = int(input("请输入 1~10 之间的整数:"))

print("你输入了:", num)

这里"条件"是:数字不在 1~10 之间。只要不在范围内,就继续要求输入;一旦在范围内,条件为 False,循环结束。


第二部分:break ------ 立即退出循环

五、break 的作用

break 是循环里的跳出语句 :一旦执行到 break立刻结束当前这一层循环,不再判断条件,直接执行循环后面的代码。

语法: 在循环体内写一行 break 即可(一般写在 if 里,满足某个条件时退出)。


六、break 示例:输入 quit 退出

例:不断读入用户输入,若用户输入 quit 则退出,否则回显输入内容。

python 复制代码
while True:    # 条件永远为 True,所以只能靠 break 退出
    line = input("请输入内容(输入 quit 退出):")
    if line == "quit":
        break
    print("你输入了:", line)

print("程序结束")

执行过程:

  • 用户输入 hello → 不满足 line == "quit",不执行 break,打印"你输入了: hello",继续下一轮。
  • 用户输入 quit → 满足条件,执行 break,循环立即结束,接着执行 print("程序结束")

要点: while True 表示"条件一直为真",循环不会自己停,必须依赖 break(或 return 等)才能退出。这种写法在"先做一次,再根据结果决定是否继续"的场景里很常见。


七、break 只结束"当前这一层"循环

如果有多层循环(while 里再套 while),break 只跳出离它最近的那一层,不会一次跳出所有层。

python 复制代码
i = 0
while i < 2:
    j = 0
    while j < 3:
        print(i, j)
        if j == 1:
            break   # 只跳出内层 while,外层继续
        j = j + 1
    i = i + 1

输出:0 00 1,然后内层因 break 结束,外层 i 变为 1,再输出 1 01 1


第三部分:循环中使用 continue

八、continue 的作用

continue 的含义是:跳过本轮循环剩余代码,直接进入下一轮

  • 不会像 break 那样退出整个循环;
  • 只是"这一轮后面的代码不执行了",然后重新判断条件,开始下一轮。

语法: 在循环体内写 continue(通常放在 if 里,满足某条件时跳过本轮)。


九、continue 示例:只处理正数

例:输入 5 个数,只打印其中大于 0 的数;小于等于 0 的跳过。

python 复制代码
count = 0
while count < 5:
    count = count + 1
    num = int(input("请输入第 {} 个数:".format(count)))
    if num <= 0:
        continue   # 跳过下面的 print,直接下一轮
    print("正数:", num)
print("输入结束")

当用户输入 0 或负数时,执行 continue,后面的 print("正数:", num) 不会执行,直接进入下一轮输入。


十、break 和 continue 对比

语句 作用
break 立即结束整个当前循环,执行循环后面的代码
continue 只结束本轮,马上进入下一轮循环
python 复制代码
# break:遇到 3 就彻底退出
n = 0
while n < 5:
    n = n + 1
    if n == 3:
        break
    print(n)   # 只打印 1, 2
print("结束")

# continue:遇到 3 只跳过本次打印
n = 0
while n < 5:
    n = n + 1
    if n == 3:
        continue
    print(n)   # 打印 1, 2, 4, 5
print("结束")

第四部分:使用 while 循环处理列表

十一、为什么用 while 处理列表?

  • for 循环:适合"遍历已知列表的每一个元素"。
  • while 循环 :适合"在循环过程中不断修改列表(删除、移走元素),直到列表满足某种条件(例如为空、或没有待处理项)"。

下面几种典型用法都用 while 更自然。


十二、while 循环中逐个"移走"列表元素

例:把列表里的元素一个一个移走,直到列表为空。

可以用 pop() 每次从末尾取走一个(或从头部取走一个),用 while 列表不为空 作为条件:

python 复制代码
fruits = ["苹果", "香蕉", "橙子"]

while fruits:    # 当列表非空时,条件为 True
    one = fruits.pop()
    print("取出:", one)

print("列表已空:", fruits)

输出:

text 复制代码
取出: 橙子
取出: 香蕉
取出: 苹果
列表已空: []

要点: 在 Python 中,空列表在条件判断中为 False ,非空列表为 True。所以 while fruits: 等价于"列表里还有元素就继续循环"。


十三、while + 列表:把元素从一个列表移到另一个列表

例:把 unconfirmed 里的用户逐个"验证",验证通过的移到 confirmed 列表。

python 复制代码
unconfirmed = ["张三", "李四", "王五"]
confirmed = []

while unconfirmed:
    user = unconfirmed.pop()
    print("正在验证:", user)
    confirmed.append(user)

print("已验证用户:", confirmed)
print("待验证:", unconfirmed)

这里用 pop()unconfirmed 里取走一个,再 appendconfirmed。如果业务上需要"输入 Y/N 才决定是否通过",可以在 append 前加 if 判断。


十四、while 中删除列表中满足条件的元素(注意陷阱)

需求: 删除列表中所有等于 "待删除" 的元素。

错误写法: 在 for 循环里边遍历边删除,会导致跳过元素或越界,不推荐。

推荐写法:while + in + remove,只要列表中还有该值就继续删:

python 复制代码
pets = ["猫", "狗", "待删除", "兔子", "待删除", "鸟"]

while "待删除" in pets:
    pets.remove("待删除")

print(pets)   # ['猫', '狗', '兔子', '鸟']

要点: while "待删除" in pets 表示"只要列表里还有'待删除'就继续循环",每次 remove 只删第一个,删完再判断,直到没有为止。


第五部分:使用 while 循环处理字典

十五、while 与字典的典型用法

字典没有"顺序"概念(在较老版本里),一般不会用 while 去"按位置"遍历字典,但可以:

  • while + 条件 控制"何时停止";
  • 在循环里 增删键值对,或根据字典内容做判断。

十六、例:用 while 收集用户输入并存入字典

例:不断询问用户"键"和"值",用户输入空键时结束,最后打印字典。

python 复制代码
data = {}

while True:
    key = input("请输入键(直接回车结束):")
    if key == "":
        break
    value = input("请输入对应的值:")
    data[key] = value

print("最终字典:", data)

这里用 break 在"键为空"时退出,用 data[key] = value 不断往字典里添加键值对。


十七、例:while 中根据字典内容决定是否继续

例:有一个待处理队列(用列表存任务名),每轮处理一个,并在字典里记录处理次数,直到队列为空。

python 复制代码
queue = ["任务A", "任务B", "任务C"]
processed = {}   # 记录每个任务被处理的次数(这里每任务只处理一次,仅作结构示例)

while queue:
    task = queue.pop(0)
    processed[task] = processed.get(task, 0) + 1
    print("已处理:", task)

print("处理记录:", processed)

这里 while 的条件是列表是否为空 ,循环体里用到了字典的读写。你可以把 queue 换成别的结构,只要"结束条件"清晰即可。


第六部分:设置活动标志(活动标志控制循环)

十八、什么是"活动标志"

活动标志(active flag) 一般是一个布尔变量 (如 activerunning),用来表示"程序/循环是否还在活动状态":

  • True:继续循环(程序还在运行)
  • False:结束循环(程序/这一阶段结束)

好处是:循环条件集中在一个变量上,逻辑清晰;在循环内部多处都可以把标志设为 False 来结束循环,而不必写很多 break。


十九、用活动标志控制 while:菜单示例

例:简易菜单,用户输入 4 时"退出",此时把活动标志设为 False,循环结束。

python 复制代码
active = True   # 活动标志:True 表示继续运行

while active:
    print("1. 查询  2. 存钱  3. 取钱  4. 退出")
    choice = input("请选择(1-4):")

    if choice == "1":
        print("执行查询")
    elif choice == "2":
        print("执行存钱")
    elif choice == "3":
        print("执行取钱")
    elif choice == "4":
        active = False   # 用户选择退出,把标志设为 False,下一轮条件不成立,循环结束
        print("感谢使用,再见!")
    else:
        print("无效选项,请重新选择")

print("程序已退出")

要点: 只要把 active = False,下一次判断 while active 时条件为 False,循环自然结束,无需在每一个分支里写 break。


二十、活动标志 + 多个退出条件

例:满足以下任一条件就结束循环:用户输入 quit、或输入了 3 次无效选项。

python 复制代码
active = True
invalid_count = 0

while active:
    line = input("请输入(输入 quit 退出):")
    if line == "quit":
        active = False
        print("已退出")
    elif line == "":
        invalid_count = invalid_count + 1
        print("无效输入,当前无效次数:", invalid_count)
        if invalid_count >= 3:
            active = False
            print("无效次数过多,自动退出")
    else:
        print("你输入了:", line)
        invalid_count = 0   # 有效输入时重置计数

这里"退出"有两种原因,都通过把 active = False 统一处理,逻辑更清晰。


第七部分:综合示例与小结

二十一、综合示例:while + 列表 + break + 活动标志

需求: 不断让用户输入名字,加入列表;输入 quit 停止;输入 list 打印当前所有名字;最后打印名单。

python 复制代码
names = []
active = True

while active:
    s = input("请输入姓名(quit 退出,list 查看名单):")
    if s == "quit":
        active = False
    elif s == "list":
        print("当前名单:", names)
    elif s.strip() == "":
        print("不能输入空名字")
    else:
        names.append(s.strip())
        print("已添加:", s.strip())

print("最终名单:", names)

这里同时用到了:活动标志列表的 append条件分支,可作为 while + 列表 + 标志的小综合练习。


二十二、while 相关小结表

主题 要点
while 基本语法 while 条件: + 缩进循环体;条件为 True 时重复执行,为 False 时结束
避免死循环 循环体内要有让"条件"最终变为 False 的语句(或 break)
break 立即结束当前这一层循环,执行循环后面的代码
continue 跳过本轮剩余代码,直接进入下一轮循环
处理列表 while 列表:while 元素 in 列表: 等,在循环中 pop/remove/append
处理字典 多用 while True + break 或活动标志,在循环里增删键值对
活动标志 用布尔变量(如 active)表示是否继续;设为 False 即结束循环,逻辑集中、易读

二十三、与 for 的简单对比

场景 更合适
遍历已知列表/范围,不删改结构 for
根据条件"一直做直到......" while
用户反复输入直到某条件 while
列表边遍历边删除/移走元素 while
用"活动标志"统一控制是否继续 while
相关推荐
所谓伊人,在水一方3332 小时前
【Python数据可视化精通】第9讲 | 实时数据流可视化
开发语言·python·信息可视化·数据分析·pandas
困死,根本不会2 小时前
Python 基础语法速通:从入门到上手
windows·笔记·python·学习
无风听海2 小时前
深入解析 Python dotenv
网络·python·rpc
在屏幕前出油2 小时前
02. FastAPI——路由
服务器·前端·后端·python·pycharm·fastapi
AC赳赳老秦2 小时前
2026多智能体协同趋势:DeepSeek搭建多智能体工作流,实现复杂任务自动化
人工智能·python·microsoft·云原生·virtualenv·量子计算·deepseek
阿_旭2 小时前
基于YOLO26深度学习的风力机缺陷检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·风力机缺陷检测
郝学胜-神的一滴3 小时前
深度解析:Python元类手撸ORM框架,解锁底层编程魔法
数据结构·数据库·python·算法·职场和发展
badhope3 小时前
GitHub热门AI技能Top20实战指南
前端·javascript·人工智能·git·python·github·电脑
前端付豪3 小时前
练习单导出
前端·python·llm