原文:While Loops in Python – While True Loop Statement Example,作者:Dionysia Lemonaki
Python 有许多工具和功能可以帮助你自动执行重复性任务。
循环是其中一个功能。
循环是所有现代编程语言中一个有用且经常使用的功能。当你想要自动执行特定的重复任务或防止自己在程序中复制和粘贴相同的代码时,循环很有帮助。
计算机编程中的循环多次重复相同的代码块或相同的指令序列,直到满足条件或不再满足条件。
因此,总而言之,循环使你不必一遍又一遍地编写相同的代码。
Python 内置了两种类型的循环:
- for 循环
- while 循环
在本文中,你将学习如何构造 while
循环。
以下是我们将介绍的内容:
- 什么是
while
循环 while
循环的语法while
循环的示例while true
循环是什么
Python 中的 while 循环是什么
while
循环重复一段代码未知次数,直到不再满足某个条件。另一方面,for
循环重复一段代码固定的次数。
因此,当你不知道要预先执行代码块多少次时,while
循环很有用。
while
循环根据给定的布尔条件重复代码块。
布尔条件是计算结果为 true
或 false
的条件。
while
循环总是在运行前首先检查条件。如果条件评估为 true
,则循环将运行循环体内的代码,并在条件保持为 true
时继续运行代码。
它将继续执行所需的代码语句集,直到该条件不再为真。
让我们举一个假设的例子。
你可以要求用户提交一个秘密关键字,以便他们可以访问你网站的特定部分。
假设为了让他们能够查看某些内容,他们首先必须输入关键字 “Python”。
为此,你会要求他们输入该关键字。也就是说,你不知道用户会输入多少次错误的关键字。
每次他们输入错误的关键字时,你都会继续提示他们输入正确的关键字。只要他们输入了错误的关键字,你就不允许他们继续。
当他们最终输入关键字 “Python” 时,你将允许他们查看该内容,你将停止提示他们,并且该代码块将停止执行。
要执行与此示例类似的操作,你需要使用 Python 的 while
循环。
如何在 Python 中编写 while 循环
在 Python 中编写 while
循环的一般语法如下所示:
while condition:
body of while loop containing code that does something
让我们分解一下:
- 你可以使用
while
关键字启动while
循环。 - 然后,你添加一个条件,该条件将是一个布尔表达式。布尔表达式是计算结果为
true
或false
的表达式。 - 条件后跟一个冒号,
:
。 - 在新行上,添加一个缩进级别。许多代码编辑器会自动为你执行此操作。例如,当使用带有 Python 扩展的 Visual Studio Code 编辑器时,在你写上上一步中的冒号并按 Enter 后,它会自动以正确的缩进级别缩进你的代码。这种缩进级别是 Python 如何知道你将编写的代码语句与
while
语句相关联的方式。 - 然后,你要运行的代码进入
while
语句的主体。 - 当条件计算为
true
时,while
循环主体内的代码将执行。主体内的代码将继续执行,直到条件不再满足并评估为false
。
Python 中的 while 循环的示例
现在,让我们使用 Python while
循环编写我之前提到的示例。
首先,我将秘密关键字 Python
存储在一个名为 secret_keyword
的变量中。
secret_keyword = "Python"
然后,我将要求用户输入秘密关键字以访问其余内容。
为此,我将使用 input()
函数并将结果存储在名为 user_input
的变量中。
user_input = input("Please enter the secret keyword: ")
这里需要注意的是,默认情况下用户输入区分大小写,这意味着如果用户输入 “python” 而不是 “Python”,他们仍然无法继续。
要解决此问题,你可以使用诸如 .capitalize()
之类的字符串方法将用户输入的单词的首字母大写。
user_input = input("Please enter the secret keyword: ").capitalize()
接下来,是时候构建 while
循环了。
我要检查变量 user_input
是否不等于变量 secret_keyword
的内容。
本质上,我正在检查用户输入的内容是否不等于字符串 “Python”。
为了在 Python 中编写这个条件,我将使用 !=
运算符来检查不等式。
secret_keyword = "Python"
user_input = input("Please enter the secret keyword: ").capitalize()
while user_input != secret_keyword:
在 while
循环的主体内,我将再次提示用户输入秘密关键字。
secret_keyword = "Python"
user_input = input("Please enter the secret keyword: ").capitalize()
while user_input != secret_keyword:
user_input = input("Please enter the secret keyword: ").capitalize()
它的工作方式是,如果用户输入字符串 “Python”,循环将终止,程序将不再运行。但是,如果用户输入的字符串不等于 “Python”,则循环将继续。
因此,如果 user_input
不等于 secret_keyword
,循环将继续执行。
并且没有设定运行和停止的次数,这意味着只要用户不输入字符串 “Python”,while
循环就会继续执行。这是因为我设置的条件继续评估为 true
。
Please enter the secret keyword: Hello
Please enter the secret keyword: Hi
Please enter the secret keyword: CSS
Please enter the secret keyword: css
Please enter the secret keyword:
..
..
..
如果你正在跟随并想要终止程序,请键入 Control C
以退出无限循环。无限循环是指循环永远不会停止执行。
现在,如果我重新运行程序并最终输入正确的秘密关键字,循环将退出,代码将停止运行。
Please enter the secret keyword: Java
Please enter the secret keyword: Python
如果我也通过 capitalize()
方法输入 “python”,就会发生这种情况:
Please enter the secret keyword: java
Please enter the secret keyword: python
循环终止,因为条件不再评估为 true
。
Python 中的 while true 循环是什么
之前,你看到了无限循环是什么。
本质上,while True
循环是一个连续为 true
的循环,因此会无限运行。它永远不会停止,直到你强迫它停止。
#this creates an infinite loop
while True:
print("I am always true")
如你之前所见,避免这种情况的方法是键入 Control C
。
另一种显式转义的方法是使用 break
语句。
由于 True
将始终评估为 True
并因此重复执行,因此 break
语句将在需要时强制循环停止。
让我们看下面的例子:
i = 0
# this creates an infinite loop
while True:
print(i)
i = i + 1
在这个例子中,我将继续重复增加一——没有条件阻止它增加,因为 True
将始终评估为 True
。
为了阻止这成为一个无限循环,我首先引入一个 if
语句。
if
语句检查 i
是否等于 5
。如果是,则循环将结束,这要归功于 if
语句中的 break
语句,它实际上告诉循环停止。
i = 0
while True:
print(i)
i = i + 1
if i == 5:
break
总结
你现在知道如何在 Python 中编写 while
和 while True
循环了。
我希望本教程对你有所帮助。
要了解有关 Python 编程语言的更多信息,请查看 freeCodeCamp 的 Python 认证。你将从基础开始,通过对初学者友好的交互式方式来学习课程。最后,你还将构建五个项目以巩固你所学的知识。
感谢你阅读本文,祝你编程愉快!