Python - while 循环

2023-09-17 22:15:05

Python 使用 whilefor 关键字构成条件循环,通过该循环,重复执行语句块,直到指定的布尔表达式为 true。

以下是 while 循环语法。

语法:
while [boolean expression]:
    statement1
    statement2
    ...
    statementN

Python 关键字 while 有一个条件表达式,后跟:符号,以增加缩进开始块。 此块具有要重复执行的语句。这样的块通常被称为循环的主体。身体将继续执行,直到条件评估为 True 。如果结果是False,程序将退出循环。 下面的示例演示了一个 while 循环。

num =0
while num < 5:
    num = num + 1
    print('num = ', num)

输出:

num = 1
num = 2
num = 3
num = 4
num = 5

在这里,while 语句之后的重复块涉及递增整数变量的值并打印它。在块开始之前,变量 num 初始化为 0。直到小于 5,num 递增 1 并打印以显示数字序列,如上所示。

循环主体中的所有语句必须以相同的缩进开头,否则将引发IndentationError

num =0
while num < 5:
    num = num + 1
      print('num = ', num)

输出:

  print('num = ', num)
  ^
IndentationError: unexpected indent

退出 While 循环(Exit from the While Loop)

使用 break 关键字在特定情况下退出 while 循环。使用 if 条件确定何时退出 while 循环,如下所示。

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

输出:

num = 1
num = 2
num = 3

继续下一次迭代(Continue Next Iteration)

使用 continue 关键字开始下一次迭代,并在某些条件下跳过 continue 语句后面的语句,如下所示。

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)

输出:

num = 1
num = 2
num = 3

虽然循环与 else 块(While Loop with else Block)

else块可以遵循while循环。当 while 循环的布尔表达式计算结果为 False 时,将执行 else 块。

使用 continue 关键字开始下一次迭代,并在某些条件下跳过 continue 语句后面的语句,如下所示。

num = 0
while num < 3:
	num += 1   # num += 1 is same as num = num + 1
	print('num = ', num)
else:
    print('else block executed')

输出:

num = 1
num = 2
num = 3
else block executed

下面的 Python 程序依次从用户那里获取一个数字作为输入并计算平均值,只要用户输入一个正数即可。在这里,重复块(循环的主体)要求用户输入一个数字,累积添加它,如果它是非负数,则保留计数。

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)

当用户提供负数时,循环终止并显示到目前为止提供的数字的平均值。 上述代码的示例运行如下:

输出:

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

本文内容总结: