Python while 循环


Python while 循环

通常,计算机程序中步骤的执行流程是从开始到结束。然而,如果流程重定向到任何较早的步骤,而不是下一步,则构成循环。

Python 编程语言中的while循环语句,只要给定的布尔表达式为 true,就会重复执行目标语句。

句法

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

while expression:
   statement(s)

while关键字后跟一个布尔表达式,然后是冒号符号,以开始一个缩进的语句块这里,语句可以是单个语句或具有统一缩进的语句块。条件可以是任何表达式,true 是任何非零值。当布尔表达式为 true 时,循环将进行迭代。

一旦表达式变为假,程序控制就会立即传递到循环后面的行。

如果它未能变为 false,则循环将继续运行,并且不会停止,除非强制停止。这种循环称为无限循环,这在计算机程序中是不期望的。

以下流程图说明了while循环 -

输出你好世界

实施例1

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

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

print ("End of while loop")

我们将 count 变量初始化为 0,循环运行直到“count<5”。在每次迭代中,计数都会增加并进行检查。如果不是 5,则进行下一次重复。在循环块内,打印计数的瞬时值。当while条件变为 false 时,循环终止,并执行下一条语句,这里是 End of while循环消息。

输出

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

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

实施例2

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

var='0'
while var.isnumeric()==True:
   var=input('enter a number..')
   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

无限循环

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

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

实施例3

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

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

输出

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

上面的例子进入了无限循环,需要使用CTRL+C退出程序。
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

while-else 循环

Python 支持将else语句与while循环语句关联。

如果else语句与while循环一起使用,则在控制权转移到执行主线之前,当条件变为 false 时,将执行else语句。

以下流程图显示了如何将elsewhile语句一起使用 -

输出你好世界

例子

以下示例说明了 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