Python - while循环



Python while 循环

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

此处,语句可以是单个语句或具有统一缩进的语句块。条件可以是任何表达式,真值为任何非零值。一旦表达式变为假,程序控制就会转移到循环后紧跟的行。

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

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循环的另一个例子。每次迭代,程序都会请求用户输入,并持续重复,直到用户输入一个非数字字符串。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!

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

广告