Python - While 循环



Python while 循环

Python 编程语言中的 while 循环会重复执行目标语句,只要指定的布尔表达式为 true。此循环以 while 关键字开头,后跟布尔表达式和冒号 (:)。然后,一个缩进的语句块开始。

在这里,statement(s) 可以是单个语句或具有统一缩进的语句块。条件可以是任何表达式,true 是任何非零值。一旦表达式变为 false,程序控制就会传递到紧跟在循环后面的行。

如果它无法变为 false,则循环将继续运行,除非强制停止,否则不会停止。这样的循环称为无限循环,这在计算机程序中是不需要的。

while 循环的语法

Python 编程语言中 while 循环的语法是 -


while expression:
	 	statement(s)

在 Python 中,在编程构造后缩进相同数量的字符空格的所有语句都被视为单个代码块的一部分。Python 使用缩进作为对语句进行分组的方法。

While 循环流程图

以程图说明了 while 循环 -

while loop

示例 1

以下示例说明了 while 循环的工作原理。在这里,迭代运行到 count 的值将变为 5。


count=0
while count<5:
	 	count+=1
	 	print ("Iteration no. {}".format(count))

print ("End of while loop")

在执行时,此代码将生成以下输出 -


Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
End of while loop

示例 2

这是使用 while 循环的另一个示例。对于每次迭代,程序都会要求用户输入并不断重复,直到用户输入非数字字符串。如果 input 是整数,则 isnumeric() 函数返回 true,否则返回 false。


var = '0'
while var.isnumeric() == True:
	 	var = "test"
	 	if var.isnumeric() == True:
	 	 	 print ("Your input", var)
print ("End of while loop")

在运行代码时,它将生成以下输出 -

enter a number..10
Your input 10
enter a number..100
Your input 100
enter a number..543
Your input 543
enter a number..qwer
End of while loop

Python 无限 while 循环

如果条件永远不会变为 FALSE,则循环将变为无限循环。使用 while 循环时必须小心,因为此条件可能永远不会解析为 FALSE 值。这会导致一个永无止境的循环。这样的循环称为无限循环。

无限循环在服务器需要持续运行的客户端/服务器编程中可能很有用,以便客户端程序可以在需要时与它通信。

让我们举个例子来了解无限循环在 Python 中是如何工作的 -


var = 1
while var == 1 : # This constructs an infinite loop
	 	num = int(input("Enter a number :"))
	 	print ("You entered: ", num)
print ("Good bye!")

在执行时,此代码将生成以下输出 -

Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number :11
You entered: 11
Enter a number :22
You entered: 22
Enter a number :Traceback (most recent call last):
File "examples\test.py", line 5, in
num = int(input("Enter a number :"))
KeyboardInterrupt

上面的例子是一个无限循环,你需要使用 CTRL+C 退出程序。

Python while-else 循环

Python 支持将 else 语句与 while 循环相关联。如果 else 语句与 while 循环一起使用,则在控件切换到主执行行之前,当条件变为 false 时,将执行 else 语句。

带有 else 语句的 While 循环流程图

以程图显示了如何将 else 语句与 while 循环一起使用 -

output hello world

下面的示例说明了 else 语句与 while 语句的组合。直到计数小于 5,才会打印迭代计数。当它变为 5 时,在将控制权传递给主程序中的下一条语句之前,将执行 else 块中的 print 语句。


count=0
while count<5:
	 	count+=1
	 	print ("Iteration no. {}".format(count))
else:
	 	print ("While loop over. Now in else block")
print ("End of while loop")

在运行上述代码时,它将打印以下输出 -

Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
While loop over. Now in else block
End of while loop

单语句套件

与 if 语句语法类似,如果 while 子句仅包含单个语句,则可以将其与 while 标头放在同一行上。

以下示例演示如何使用单行 while 子句。


flag = 0
while (flag): print ("Given flag is really true!")
print ("Good bye!")

当您运行此代码时,它将显示以下输出 -

Good bye!

flag 值更改为 “1” 并尝试上述程序。如果这样做,它将进入无限循环,您需要按 CTRL+C 键退出。