循环是编程语言的基本概念之一。 当您要重复多次特定代码块直到满足指定条件时,循环很方便做到。
Python中有两个基本的循环结构,for
和while
循环。
本教程介绍Python中while
循环的基础。 我们还将向您展示如何使用else
子句以及break
和continue
语句。
Python while
循环
只要给定条件的计算结果为true
,while
循环便执行其语句的未知次数。
Python while
循环采用以下形式:
while EXPRESSION:
STATEMENT(S)
while
语句以while
关键字开头,后跟条件表达式。
在执行语句之前先对EXPRESSION
进行评估。 如果条件评估为true
,则执行STATEMENT(S)
。 否则,如果条件评估为false
,则循环终止,并将程序控制传递给随后的语句。
STATEMENT(S)
块以缩进开始,以第一条未缩进的行结束。 大多数人选择使用4空格还是2空格缩进。 官方 Python代码样式指南建议每个缩进级别使用4个空格,并避免混合使用制表符和空格进行缩进。
让我们看下面的示例代码,只要它小于5,就递增并打印变量i
的当前值:
i=0
while i < 5:
i += 1
print('number:', i)
只要i
小于或等于5,while
循环就会迭代。 它将产生以下输出:
number: 1
number: 2
number: 3
number: 4
number: 5
Python支持标准比较操作:
a == b
-如果a
和b
相等,则为true。a != b
-如果a
和b
不相等,则为true。a > b
-如果a
大于b
,则为true。a >= b
-如果a
等于或大于b
,则为true。a < b
-如果a
小于b
,则为true。a <= b
-如果a
等于或小于b
,则为true。
要否定条件表达式,请使用逻辑not
运算符:
i=0
while not i >= 5:
i += 1
print('number:', i)
break
和continue
break
和continue
语句使您可以控制while
循环的执行。
break
语句终止当前循环,并将程序控制权传递给终止循环之后的语句。 最常见的情况是在满足特定条件时使用break
终止循环。
在下面的示例中,一旦当前迭代项等于2
,则循环的执行将中断。
i=0
while i < 5:
i += 1
if i == 2:
break
print('number:', i)
Number: 1
continue
语句退出循环的当前迭代,并将程序控制权传递给循环的下一个迭代。
在下面的示例中,一旦当前迭代项等于2
,则continue
语句将导致执行返回循环的开头并继续下一次迭代。
i=0
while i < 5:
i += 1
if i == 2:
continue
print('number:', i)
number: 1
number: 3
number: 4
number: 5
else
条件
与其他语言不同,在Python中while
循环具有可选的else
子句:
while EXPRESSION:
STATEMENT(S)
else:
STATEMENT(S)
仅当EXPRESSION
的值为false
时,才会执行else
子句中的语句。 如果引发异常,或者循环使用break
语句终止,则将不会继续执行。
以下是示例:
i=0
while i < 5:
i += 1
print('number:', i)
else:
print('Loop completed.')
number: 1
number: 2
number: 3
number: 4
number: 5
Loop completed.
现在看看break
跳出循环时会发生什么:
i=0
while i < 5:
i += 1
if i == 2:
break
print('number:', i)
else:
print('Loop completed.')
else
子句中的语句未执行,因为该表达式未求值为false
:
Number: 1
经常使用带有while
循环的else
子句。 一种常见情况是,当您希望从循环中中断时,如果循环继续运行直到条件评估为false
,则可以执行一些语句或函数。
while
无限循环
无限循环是无限重复并且直到程序终止才终止的循环。 如果条件始终为true
,则将出现无限循环。
无限循环通常用于使程序等待某些外部事件的发生。 通常,在Python中,使用while True:
而不是True
创建无限循环,您还可以使用始终返回true
的任何其他表达式。
以下是无限while
循环的示例,该循环将继续提示您输入“是”:
while True:
i = input('Please enter \'Yes\': ')
if i.strip() == 'Yes':
break
上面的while
循环将一直运行,直到您输入“是”:
Please enter 'Yes': 3
Please enter 'Yes': l
Please enter 'Yes': lin
Please enter 'Yes': No
Please enter 'Yes': Yes
终止无限循环的另一种方法是按CTRL+C
。
编写无限循环时,请确保使用break
语句在某个时刻退出循环。
结论
只要给定条件的计算结果为true
,while
循环就会重复执行其语句。
如果您有任何问题或反馈,请随时发表评论。