Python中的while
循环是控制程序流程的强大工具。与迭代已定义序列的for
循环不同,while
循环只要指定条件保持为真,就会继续执行。这使得它们在迭代次数事先未知的情况下特别有用。
目录
基本的While循环结构
while
循环的基本语法很简单:
while condition:
# 要重复执行的代码
# ...
在每次迭代之前都会评估condition
。如果其计算结果为True
,则执行缩进的代码块。如果其计算结果为False
,则循环终止,程序继续执行循环后面的语句。
控制循环执行:break
和continue
break
和continue
语句提供了对循环行为的细粒度控制:
break
:立即退出循环,而不管条件如何。continue
:跳过当前迭代的其余部分,并进行下一次迭代。
count = 0
while count < 5:
count += 1
if count == 3:
continue # 跳过打印3
print(count)
while count < 10:
count += 1
if count == 7:
break # 当count为7时退出循环
print(count)
while-else
结构
Python的while
循环独一无二地支持可选的else
块。只有当循环*自然*完成时,即当循环条件变为False
时,才会执行此else
块。至关重要的是,如果使用break
语句终止循环,则不会执行else
块。这提供了一种简洁的方法来处理仅当循环在没有中断的情况下完成时才需要执行操作的情况。
count = 0
while count < 5:
print(count)
count += 1
else:
print("循环正常完成!")
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("循环没有正常完成!") # 这不会打印
实际示例
以下是一些演示while
循环实际用法的示例:
示例1:用户输入验证
while True:
try:
age = int(input("请输入您的年龄:"))
if age >= 0:
break # 如果输入有效年龄则退出循环
else:
print("年龄不能为负数。")
except ValueError:
print("无效输入。请输入数字。")
print(f"您的年龄是:{age}")
示例2:模拟倒计时
import time
countdown = 10
while countdown > 0:
print(countdown)
time.sleep(1) # 暂停1秒
countdown -= 1
print("发射!")
避免无限循环
while
循环的一个常见陷阱是创建无限循环——一个永不终止的循环。这通常发生在循环条件永远不会变为False
时。始终确保循环条件最终会计算为False
。仔细检查循环的逻辑,并确保影响条件的变量在循环体中得到适当的更新。