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

breakcontinue 语句可以更精细地控制循环流程。

  • 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 时间处理的基础,掌握其常用函数能有效解决程序中的计时、延时、时间格式转换等需求。

更多推荐