Python 中的 While 循环

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 循环了。

我希望本教程对你有所帮助。