Python while 循环详解:从基础到实战
1. while 循环简介
在 Python 中,while 循环是一种基于条件判断的循环结构。只要给定的条件表达式为 True,循环体中的代码就会重复执行。当条件变为 False 时,循环终止,程序继续执行循环之后的代码。
其基本语法如下:
while 条件表达式:
# 循环体
# 当条件为 True 时执行的代码块
2. 基础用法示例
让我们从一个简单的例子开始,打印数字 1 到 5:
count = 1
while count <= 5:
print(f"当前数字: {count}")
count += 1 # 重要:更新循环变量,避免无限循环
print("循环结束!")
运行结果:
当前数字: 1
当前数字: 2
当前数字: 3
当前数字: 4
当前数字: 5
循环结束!
3. 避免无限循环
在 while 循环中,必须确保循环条件最终会变为 False,否则将导致无限循环。例如,忘记更新循环变量:
# ❌ 错误示例:无限循环
count = 1
while count <= 5:
print(f"卡在: {count}")
# 缺少 count += 1,count 永远为 1,条件永远为 True
要中断无限循环,通常可以按 Ctrl+C(在终端中)。
4. 使用 break 和 continue
break 和 continue 语句可以更精细地控制循环流程。
break:立即终止整个循环。continue:跳过当前循环的剩余代码,直接进入下一次条件判断。
# break 示例:找到第一个大于10的数就停止
num = 1
while num < 20:
if num > 10:
print(f"找到大于10的数: {num},停止搜索。")
break
print(f"检查: {num}")
num += 1
continue 示例:只打印奇数
num = 0
while num < 10:
num += 1
if num % 2 == 0: # 如果是偶数
continue # 跳过打印,直接进入下一次循环
print(f"奇数: {num}")
5. else 子句
while 循环可以有一个可选的 else 子句。当循环条件变为 False 正常结束时(即不是通过 break 语句跳出),else 块中的代码会被执行。
count = 1
while count <= 3:
print(count)
count += 1
else:
print("循环正常结束,未遇到 break。")
与 break 对比
count = 1
while count <= 5:
if count == 3:
print("遇到 3,提前 break。")
break
print(count)
count += 1
else:
print("这行不会被执行,因为循环被 break 中断了。")
6. 实战应用:用户输入验证
while 循环非常适合处理需要重复直到获得有效输入的场景。
while True: # 构建一个“无限循环”
user_input = input("请输入一个 1 到 10 之间的整数 (输入 'q' 退出): ")
if user_input.lower() == 'q':
print("程序退出。")
break
if user_input.isdigit(): # 检查是否为数字
num = int(user_input)
if 1 <= num <= 10:
print(f"输入有效: {num}")
break # 输入有效,退出循环
else:
print("数字不在 1 到 10 之间,请重新输入。")
else:
print("输入无效,请输入一个整数。")
7. 嵌套 while 循环
你可以在一个 while 循环内部再放置另一个 while 循环。
# 打印一个简单的 3x3 星号矩阵
row = 1
while row <= 3:
col = 1
while col <= 3:
print("*", end=" ") # end=" " 使打印不换行
col += 1
print() # 换行,进入下一行
row += 1
8. 总结与注意事项
- 核心:
while循环基于条件重复执行代码块。 - 关键:确保循环条件最终能变为
False,避免无限循环。 - 控制:使用
break立即退出循环,使用continue跳过本次迭代。 - 特性:可选的
else子句在循环正常结束时执行。 - 适用场景:适用于迭代次数未知、需要等待特定条件满足(如用户输入验证、读取流数据)的情况。
与 for 循环(通常用于遍历已知序列)相比,while 循环提供了更灵活的条件驱动迭代方式。
9. Python time 模块简介
Python 的 time 模块是标准库中用于处理时间相关操作的核心模块。它提供了各种函数来获取、表示和操作时间,常用于程序计时、延时、时间戳转换等场景。
9.1 获取当前时间
time.time() 返回当前时间的时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数,浮点数)。
import time
timestamp = time.time()
print(f"当前时间戳: {timestamp}")
输出示例:当前时间戳: 1742035267.123456
time.ctime() 将时间戳转换为可读的字符串格式。
current_time = time.ctime()
print(f"当前时间: {current_time}")
# 输出示例:当前时间: Mon Jul 14 18:41:07 2026
9.2 时间格式化与解析
time.strftime() 用于将时间元组格式化为字符串。
formatted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"格式化时间: {formatted}")
# 输出示例:格式化时间: 2026-07-14 18:41:07
time.strptime() 用于将字符串解析为时间元组。
time_tuple = time.strptime("2026-07-14", "%Y-%m-%d")
print(f"解析出的时间元组: {time_tuple}")
# 输出示例:解析出的时间元组: time.struct_time(tm_year=2026, tm_mon=7, ...)
9.3 程序延时
time.sleep() 让程序暂停指定的秒数。
print("开始等待...")
time.sleep(2.5) # 暂停 2.5 秒
print("等待结束!")
9.4 性能计时
time.perf_counter() 提供高精度的性能计时器,常用于测量代码段的执行时间。
start = time.perf_counter()
# 模拟一些耗时操作
time.sleep(0.1)
end = time.perf_counter()
print(f"操作耗时: {end - start:.6f} 秒")
9.5 与 while 循环结合示例
time 模块常与 while 循环结合,实现定时任务或超时控制。
import time
timeout = 5 # 超时时间(秒)
start_time = time.time()
print("开始执行任务,最多等待 5 秒...")
while True:
# 模拟检查某个条件是否完成
# 这里用 time.sleep 模拟耗时
time.sleep(1)
current_time = time.time()
elapsed = current_time - start_time
print(f"已等待 {elapsed:.1f} 秒")
if elapsed > timeout:
print("任务超时!")
break
# 假设某个条件满足时退出
if elapsed > 3:
print("条件满足,提前退出循环。")
break
print("循环结束。")
小结:time 模块是 Python 时间处理的基础,掌握其常用函数能有效解决程序中的计时、延时、时间格式转换等需求。
更多推荐


所有评论(0)