Python while循环


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 

评论关闭