Python while循环
通常,计算机程序中的步骤执行流程是从开始到结束。然而,如果流程被重定向到任何较早的步骤而不是下一步,那么就构成了一个循环。
在Python编程语言中, while 循环语句会重复执行一个目标语句,只要给定的布尔表达式为真。
语法
Python编程语言中 while 循环的语法是 –
while expression:
statement(s)
while 关键字后面跟着一个布尔表达式,然后是冒号符号,用于开始一个缩进的语句块。在这里,语句可以是单个语句,也可以是具有统一缩进的语句块。条件可以是任何表达式,而true是任何非零值。循环在布尔表达式为true时迭代。
一旦表达式变为false,程序控制流将传递到循环后面的下一行。
如果它不能变为false,循环将继续运行,并且除非强制停止,否则不会停止。这样的循环被称为无限循环,在计算机程序中是不希望的。
以下流程图说明了 while 循环。
示例 1
在Python中,同一个编程结构后的缩进相同数量的字符空格的所有语句被视为一个代码块的一部分。Python使用缩进作为分组语句的方法。
count=0
while count<5:
count+=1
print ("Iteration no. {}".format(count))
print ("End of while loop")
我们将计数变量初始化为0,并且循环一直运行到”count<5″。在每次迭代中,计数递增并进行检查。如果不是5,则进行下一次迭代。在循环块内部,打印计数的即时值。当 while 条件变为false时,循环终止,然后执行下一条语句,即此处是while循环结束的消息。
输出
执行此代码将产生以下输出−
Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
End of while loop
示例 2
这是使用 while 循环的另一个例子。对于每次迭代,程序会要求用户输入并保持重复,直到用户输入一个非数字字符串。isnumeric()函数会返回输入是否为整数,如果是则返回真,否则返回假。
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中无限循环的工作原理 –
#!/usr/bin/python3
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来退出程序。
while-else循环
Python支持在while循环语句中使用else语句。
如果else语句与while循环一起使用,当条件在控制权转移到主线程之前变为false时,else语句会被执行。
以下流程图展示了如何使用while语句和else语句:
示例
下面的示例演示了else语句与while语句的组合。在计数小于5之前,将打印迭代计数。当计数变为5时,在将控制传递给主程序中的下一条语句之前,将执行else块中的打印语句。
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