1. 定义
while循环(条件循环/无限循环)是 Python 中基于条件判断的循环结构。它不需要预先知道循环次数,只要条件满足就会持续执行代码块,直到条件变为 False 时停止。特别适合处理动态变化或无法预知终点的任务。
核心特点:
· 条件驱动:循环由布尔表达式控制
· 动态执行:循环次数在运行时确定
· 灵活退出:可通过条件变化或 break 终止
2. 语法结构
# 基础语法
while 条件表达式: # 结果为 True 或 False
循环体代码
更新条件变量 # 避免死循环的关键!
# 扩展语法(带 else)
while 条件表达式:
循环体代码
else:
循环正常结束后执行的代码 # 被 break 中断时不执行
3. 适用场景
1) 未知循环次数:如用户交互(输入验证)、网络请求重试。
2) 实时监控:如文件变化监听、传感器数据采集。
3) 游戏循环:如回合制游戏的持续运行。
4) 循环类型选择原则:
4. 使用技巧
# 技巧1:设置安全计数器(防死循环)
max_retries = 5
attempts = 0
while attempts < max_retries:
attempts += 1
# 尝试执行操作...
# 技巧2:使用 break 提前退出
while True:
data = get_data()
if data == "STOP":
break # 遇到终止信号立即退出
# 技巧3:continue 跳过当前迭代
while processing:
if item.is_invalid():
continue # 跳过无效项
process(item)
# 技巧4:死循环预防:务必在循环体内更新条件变量
while True: # 无退出条件,程序会卡死
print("这是一个死循环!")
# 技巧5:资源消耗控制:监控类循环添加延迟
import time
while waiting_for_file:
if file_exists(): break
time.sleep(5) # 每5秒检查一次,避免CPU满载
5. 项目实战:
用户输入验证
while True:
age = input("请输入您的年龄(输入q退出):")
if age.lower() == 'q':
break # 输入q时退出循环
if age.isdigit() and int(age) > 0:
print(f"您的年龄是:{age}岁")
else:
print("输入无效,请重新输入!")
else:
print("感谢使用年龄验证系统!")