惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
D
Docker
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
美团技术团队
V
V2EX
Last Week in AI
Last Week in AI
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
B
Blog RSS Feed
博客园_首页
B
Blog
博客园 - 叶小钗
I
InfoQ
WordPress大学
WordPress大学
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Latest news
Latest news
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News and Events Feed by Topic
S
Secure Thoughts
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News

木灵鱼儿

从零开始:手把手教你封装一个企业级 Axios 请求模块 - 木灵鱼儿 03-Vue Query 高级进阶:应对复杂业务场景的硬核套路 - 木灵鱼儿 02-Vue Query 快速入门:从零构建你的第一个声明式查询 - 木灵鱼儿 01-异步状态管理新范式:为什么在 Vue 3 中使用 vue-query? - 木灵鱼儿 git 如何将所有历史提交合并为一条 - 木灵鱼儿 Windows 下如何快速复制目录的同时排除指定的目录和文件 - 木灵鱼儿 x86多网口软路由+pve+爱快ikuai+iStoreOS实现组网和翻墙 - 木灵鱼儿 生产部署时动态导入 Chunk 失效的实用回退方案 - 木灵鱼儿 如何在 Vite 项目中优雅地展示用户协议?(Markdown 转 Vue 组件方案) - 木灵鱼儿 Vue 路由守卫进阶:用策略模式告别 if-else - 木灵鱼儿 16 Python for循环 - 木灵鱼儿 如何生成一个“扫码连WIFI”的二维码 - 木灵鱼儿 14 Python 分支语句if - 木灵鱼儿 13 Python 字符串详解 - 木灵鱼儿 12 Python 语句、表达式与运算符 - 木灵鱼儿
15 Python while循环 - 木灵鱼儿
木灵鱼儿 · 2026-03-01 · via 木灵鱼儿

前言

在编程的世界里,计算机最擅长的事情就是重复。如果你想打印100次“你好”,难道要手敲100行代码吗?当然不需要!这就是循环大显身手的时候。

在Python中,while 循环是最常用的循环之一。while 的英文意思是“当……的时候”,所以 while 循环的意思就是:当某个条件成立时,就一直重复执行某段代码。

while 循环的基本语法

while 循环的蓝图非常简单:

while 条件表达式:
    # 缩进的代码块,也叫“循环体”
    # 只要条件表达式为 True(真),这里的代码就会一直执行

🍎 基础示例:数苹果

假设我们要从1数到5,看看用 while 循环怎么写:

count = 1  # 步骤1:初始化变量

while count <= 5:  # 步骤2:设置条件(只要 count 小于等于 5,就继续)
    print(f"正在吃第 {count} 个苹果 🍎")
    count += 1  # 步骤3:更新变量(等同于 count = count + 1)

print("苹果吃完了,好撑!")

程序运行逻辑:

  1. 首先,count 是 1。1 <= 5 成立,打印“第1个苹果”,然后 count 变成 2。
  2. 接着,检查 2 <= 5 成立,打印“第2个苹果”,然后 count 变成 3。
  3. ……一直到 count 变成 6。
  4. 此时检查 6 <= 5,发现不成立(False),循环结束,执行最后一句“苹果吃完了”。

新手常见陷阱:死循环(Infinite Loop)

使用 while 循环时,千万不要忘记更新你的循环变量(比如上面的 count += 1)。如果条件永远为真,程序就会永远跑下去,这被称为死循环

# 🚨 这是一个死循环的错误示范 🚨
# 请不要在电脑上轻易尝试,如果不小心运行了,请按 Ctrl + C 强制停止
count = 1
while count <= 5:
    print(f"正在吃第 {count} 个苹果")
    # 糟糕!忘记写 count += 1 了
    # count 永远是 1,条件 1 <= 5 永远成立,程序会无限疯狂打印!

循环的“遥控器”:breakcontinue

有时候,我们需要在循环执行一半时打破规则。Python 提供了两个强力遥控器按钮:

1. break 按钮:紧急刹车 🛑

break 的作用是彻底跳出/终止循环,不管条件满不满足。

count = 1
while count <= 10:
    if count == 4:
        print("发现一条虫子!不吃了!🐛")
        break  # 遇到虫子,直接结束整个循环
    print(f"正在吃第 {count} 个苹果 🍎")
    count += 1

print("吃饭结束。")

输出结果只会打印吃第1、2、3个苹果,然后直接结束。

2. continue 按钮:跳过这一集 ⏭️

continue 的作用是跳过当前这一次循环的剩余代码,直接进入下一次循环。

count = 0
while count < 5:
    count += 1
    if count == 3:
        print("第 3 个苹果坏了,扔掉!🗑️")
        continue  # 跳过第3个苹果,不吃它,继续去看第4个
    print(f"正在吃第 {count} 个苹果 🍎")

输出结果会吃第1、2、4、5个苹果,唯独不吃第3个。

实战案例

光说不练假把式,我们来看看 while 循环在实际开发中的两个经典应用场景。

🎮 案例一:经典猜数字游戏

这是一个非常适合新手的小游戏。程序设定一个秘密数字,玩家一直猜,直到猜对为止。

# 猜数字游戏代码
secret_number = 7  # 秘密数字
guess = 0          # 记录玩家的猜测
attempts = 0       # 记录猜测次数

print("🎯 欢迎来到猜数字游戏!我已经想好了一个 1 到 10 之间的数字。")

# 只要玩家没猜对,就一直循环
while guess != secret_number:
    guess = int(input("请输入你猜的数字: "))
    attempts += 1  # 猜测次数加1

    if guess < secret_number:
        print("太小了,再试一次!📉")
    elif guess > secret_number:
        print("太大了,再试一次!📈")
    else:
        print(f"🎉 恭喜你猜对了!秘密数字就是 {secret_number}。")
        print(f"你一共猜了 {attempts} 次!")

💻 案例二:实用的交互式菜单 (while True 用法)

在编写脚本时,我们经常用到 while True: 这种写法。它表示“无限循环”,通常配合 break 来提供一个持续运行的服务,直到用户主动退出。

print("🤖 欢迎使用简易复读机程序")

while True:
    # 持续接收用户输入
    user_input = input("请输入你想说的话(输入 'quit' 退出): ")

    # 判断是否满足退出条件
    if user_input == 'quit':
        print("👋 再见!复读机已关闭。")
        break  # 满足条件,彻底退出循环

    # 如果没退出,就复读一遍
    print(f"复读机说:{user_input}\n")

(这种结构在编写需要保持运行的服务器、机器人或命令行工具时非常常见!)