Python 中的循环

Python 内置了两种类型的循环:

  • for ​循环
  • while ​循环

让我们关注如何while在 Python 中创建循环及其工作原理。

Python 中的 while 循环是什么?

Python 中while循环的一般语法如下所示:

while condition:
    execute this code in the loop's body

while 循环将在条件为 ​True ​时运行一段代码。它将继续执行所需的代码语句集,直到该条件不再为 ​True​。

while 循环总是在运行前首先检查条件。

如果条件评估为​True​,则循环将运行循环体内的代码。

例如,只要​number<10​,这个循环就会运行:

number = 0
while number < 10:
    print(f"Number is {number}!")
    number = number + 1

输出:

Number is 0!
Number is 1!
Number is 2!
Number is 3!
Number is 4!
Number is 5!
Number is 6!
Number is 7!
Number is 8!
Number is 9!

此处,变量​number​初始值设置为0。

在运行循环代码之前,Python 会检查条件 ( ​number < 10​)。

它的计算结果为 ​True​,因此打印语句被执行并输出“Number is 0!”到控制台。

然后number增加1。条件被重新评估,它再次为真,所以整个过程重复,直到number等于9。

在这之前“Number is 9!”被打印同时number递增,但现在​number=10​,所以不再满足条件,因此循环终止。

while如果不满足条件,循环可能永远不会运行,

例如在此示例中:

number = 50
while number < 10 :
    print(f"Number is {number}!")

由于条件始终为 False,因此不会执行循环体中的指令。

不要创建无限循环

正如您从上面的示例中看到的,while循环通常伴随着一个变量,该变量的值在整个循环期间都会发生变化。

它最终决定了循环何时结束。

如果不添加此行,则会造成无限循环。

number不会增加和更新。它将始终设置并保持在0,因此条件number < 10将永远为真。

这意味着循环将永远循环下去。

# don't run this

number = 0
while number < 10:
    print(f"Number is {number}!")

输出:

Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
...

它无限运行。

这与执行此操作相同:

#don't run this
while True:
    print("I am always true")

如果你发现自己处于这样的境地怎么办?

按Ctrl+C退出并结束循环。

什么是 do while 循环?

do while其他编程语言中循环的一般语法如下所示:

do {
  loop block statement to be executed;
}
while(condition);

例如,C 中的 do while 循环如下所示:

#include <stdio.h>
 
int main(void)
 {
   int i = 10;
   do {
      printf("the value of i: %i\n", i);
      i++;
      }
  while( i < 20 );
 }

do while 循环的独特之处在于循环块中的代码将至少执行一次。

语句中的代码运行一次,然后在代码执行后才检查条件。

所以代码首先运行一次,然后检查条件。

如果检查的条件评估为真,则循环继续。

在某些情况下,您希望代码至少运行一次,这就是 do while 循环派上用场的地方。

例如,当您编写一个接收用户输入的程序时,您可能只要求一个正数。

代码将至少运行一次。如果用户提交的数字为负数,则循环将继续运行。如果是正数,它将停止。

Python 没有do while像其他语言那样显式创建循环的内置功能。

但是可以使用 while在 Python 中模拟do-while循环。

如何在 Python 中模拟 do-while 循环

要do-while在 Python 中创建循环,您需要稍微修改while循环以获得与其他语言中的do-while循环类似的行为。

do-while循环将至少运行一次。如果满足条件,则它将再次运行。

而while循环,在另一方面,没有至少运行一次,实际上可能永远不会运行。它仅在满足条件时运行。

因此,假设我们有一个示例,我们希望一行代码至少运行一次。

secret_word = "python"
counter = 0

while True:
    word = input("Enter the secret word: ").lower()
    counter = counter + 1
    if word == secret_word:
        break
    if word != secret_word and counter > 7: 
        break

该代码将至少运行一次,要求用户输入。

它始终保证至少运行一次,使用True,否则会创建无限循环。

如果用户输入正确的口令,则循环终止。

如果用户输入错误的密码超过 7 次,则循环将完全退出。

该break语句允许您控制while循环的流程,而不是以无限循环结束。

break 将立即终止当前循环并退出它。

这就是你如何do while在 Python 中创建与循环类似的效果。

循环总是至少执行一次。如果不满足条件,它将继续循环,然后在满足条件时终止。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。