Python 使用while
和作为关键字来构成一个条件循环,通过这个循环重复执行一个语句块,直到指定的布尔表达式为真。
以下是 while
循环语法。
Syntax:
while [boolean expression]:
statement1
statement2
...
statementN
Python 关键字 while 有一个条件表达式,后跟:
符号,以增加缩进开始一个块。 该块有要重复执行的语句。这样的块通常被称为循环体。身体将继续执行,直到情况评估为True
。如果结果是False
,程序将退出循环。 以下示例演示了 while
循环。
Example: while loop
num =0
while num < 5:
num = num + 1
print('num = ', num)
Output
num = 1
num = 2
num = 3
num = 4
num = 5
在这里,while 语句之后的重复块包括递增一个整型变量的值并打印它。在块开始之前,变量 num 被初始化为 0。直到它小于 5,num 递增 1 并打印出来以显示数字序列,如上所示。
循环体中的所有语句必须以相同的缩进开始,否则会引发IndentationError
。
Example: Invalid Indentation
num =0
while num < 5:
num = num + 1
print('num = ', num)
Output
print('num = ', num)
^
IndentationError: unexpected indent
退出 while
循环
在某些情况下,使用break
关键字退出 while
循环。使用 if 条件确定何时退出 while
循环,如下所示。
Example: Breaking while loop
num = 0
while num < 5:
num += 1 # num += 1 is same as num = num + 1
print('num = ', num)
if num == 3: # condition before exiting a loop
break
Output
num = 1
num = 2
num = 3
继续下一次迭代
使用continue
关键字开始下一次迭代,在某些条件下跳过continue
语句之后的语句,如下所示。
Example: Continue in while loop
num = 0
while num < 5:
num += 1 # num += 1 is same as num = num + 1
if num > 3: # condition before exiting a loop
continue
print('num = ', num)
Output
num = 1
num = 2
num = 3
同时用其他块循环
else
块可以跟随while
循环。当while
循环的布尔表达式计算为False
时,将执行 else 块。
使用continue
关键字开始下一次迭代,在某些条件下跳过continue
语句之后的语句,如下所示。
Example: while loop with else block
num = 0
while num < 3:
num += 1 # num += 1 is same as num = num + 1
print('num = ', num)
else:
print('else block executed')
Output
num = 1
num = 2
num = 3
else block executed
下面的 Python 程序连续地从用户那里获取一个数字作为输入,并计算平均值,只要用户输入一个正数。这里,重复块(循环的主体)要求用户输入一个数字,累计相加,如果不是负数,则保持计数。
Example: while loop
num=0
count=0
sum=0
while num>=0:
num = int(input('enter any number .. -1 to exit: '))
if num >= 0:
count = count + 1 # this counts number of inputs
sum = sum + num # this adds input number cumulatively.
avg = sum/count
print('Total numbers: ', count, ', Average: ', avg)
当用户提供负数时,循环终止并显示到目前为止提供的数字的平均值。下面是上述代码的运行示例:
Output
enter any number .. -1 to exit: 10
enter any number .. -1 to exit: 20
enter any number .. -1 to exit: 30
enter any number .. -1 to exit: -1
Total numbers: 3, Average: 20.0