如何(以及何时)使用Python While循环

本教程将教你如何在 Python 编程中使用 while 循环以及何时使用它。

译自How (and When) to Use a Python While Loop,作者 Jack Wallen。

While 循环是编程的一个基本要素。While循环所做的是继续执行一条语句(或一组语句),直到满足特定条件。一个显而易见的例子(许多人都会理解)可能是这样的:只要我的银行账户有钱,我就可以买东西。

该语句是_我可以买东西_,条件是_只要我的银行账户有钱_。当您花光所有钱时,您将无法再购买东西(或支付账单)。

当您需要重复执行一条语句(或多条语句)时,While 循环是一个不错的选择。

_for_和_while_循环之间的区别在于,_for_循环只是遍历集合(或可迭代对象)并完成,而_while_循环则持续到满足特定条件为止。

_for_循环更容易使用,但在某些情况下需要使用_while_循环。例如,您可能不知道必须重复执行该语句的次数。

我们来看一下执行相同操作的基本 Python 循环示例。首先,一个将打印范围内的数字的 for 循环。该循环可能如下所示:

go 复制代码
for i in range(11):
    print (i)

我们已将 for 循环设置为打印 11 范围内的 i。该代码的输出将如下所示:

0
1
2
3
4
5
6
7
8
9
10

请记住,在编程中,编号从 0 开始,因此 11 的范围将从 0-10。

现在,让我们使用_while_循环执行相同操作。我们必须做的第一件事是用以下内容定义_i_:

接下来,我们创建 lop,其中指出当 i 小于 11 时,以 1 的增量打印 i。该循环如下所示:

bash 复制代码
while i < 11:
    print(i)
    i += 1

整个代码是:

css 复制代码
i = 1
while i < 11:
    print(i)
    i += 1

如果我们运行上述代码,我们将获得与_for_循环相同的输出。

但是,当条件未知时如何运行_while_循环呢?例如,您希望接受用户的姓名输入,并允许他们继续输入姓名,直到完成。当他们输入所有姓名后,他们可以输入_end_退出循环。退出是条件,从输入中接受姓名是语句。

我们做的第一件事是将_names_定义为一个空列表,如下所示:

接下来,我们将_new_name_定义为除 quit 之外的任何内容。在这种情况下,我们将它定义为空,如下所示:

现在,我们可以编写一个循环,以这种方式接受用户的输入:

lua 复制代码
while new_name != 'end':
     new_name = input("Type the names to be added and end with 'end: ")
 
     names.append(new_name)

我们使用 append 函数来接受在前面姓名之后输入的新姓名。

最后,我们使用以下内容打印姓名:

整个代码如下所示:

ini 复制代码
names = []
 
new_name = ''
 
while new_name != 'end':
    new_name = input("Type the names to be added and end with 'end': ")
 
    names.append(new_name)
 
print(names)

运行上述代码,它将指示用户输入姓名,并通过输入_end_结束运行。输出可能如下所示:

['Aaron Kennedy','Camile St. Joan','Anton Frank','Jean Barber','Clara Beach','end']

上述问题在于输出包括_end_,这不是一个姓名。我们可以使用一个将_new_name_定义为除_end_之外的任何内容的_for_循环来解决此问题,如下所示:

go 复制代码
if new_name != 'end':
    names.append(new_name)

现在,我们的代码如下所示:

ini 复制代码
names = []
 
new_name = ''
 
while new_name != 'end':
    new_name = input("Type the names to be added and end with 'end': ")
 
    if new_name != 'end':
        names.append(new_name)
 
print(names)

如果我们输入与上面相同的姓名,并通过输入 end(并按 Enter)结束,则输出现在将如下所示:

['Aaron Kennedy','Camile St. Joan','Anton Frank','Jean Barber','Clara Beach']

已修复。

这里有另一个接受用户输入但为他们提供可供选择的菜单的示例。我们将提供不同类型的食物。首先,我们用以下语句指导用户该怎么做:

swift 复制代码
print("\nWelcome to the food ordering center. What would you like to eat today?")

接下来,我们将_choice_定义为空变量:

接下来是我们的 while look,它将通知用户选项、接受输入、根据其输入输出文本,并在用户输入_q_时结束。循环如下所示:

swift 复制代码
while choice != 'q':

   print("\n[1] Enter 1 to order Thai.")
    print("[2] Enter 2 to order Indian.")
    print("[3] Enter 3 to order Mexican.")
    print("[4] Enter 4 to order Chinese.")
    print("[q] Enter q to quit.")

    choice = input("\nWhat kind of food would you like to order? ")
    if choice == '1':
        print("\nEnjoy your Thai food!\n")
    elif choice == '2':
        print("\nEnjoy your Indian food!!\n")
    elif choice == '3':
        print("\nEnjoy your Mexican food!\n")
    elif choice == '3':
        print("\nEnjoy your Chinese food!\n")
    elif choice == 'q':
        print("\nThanks for ordering. Have a great day.\n")
    else:
        print("\nI don't understand that choice, please try again.\n")

请注意,最后一条语句告知用户他们输入的内容超出了此应用程序的范围。

最后,我们通过以下方式打印一条告别消息:

bash 复制代码
print("Thank you and have a wonderful day.")

整个代码如下:

swift 复制代码
print("\nWelcome to the food ordering center. What would you like to eat today?")
 
choice = ''
 
while choice != 'q':
    # Give all the choices in a series of print statements.
    print("\n[1] Enter 1 to order Thai.")
    print("[2] Enter 2 to order Indian.")
    print("[3] Enter 3 to order Mexican.")
    print("[4] Enter 4 to order Chinese.")
    print("[q] Enter q to quit.")
 
    choice = input("\nWhat kind of food would you like to order? ")
 
    if choice == '1':
        print("\nEnjoy your Thai food!\n")
    elif choice == '2':
        print("\nEnjoy your Indian food!!\n")
    elif choice == '3':
        print("\nEnjoy your Mexican food!\n")
    elif choice == '3':
        print("\nEnjoy your Chinese food!\n")
    elif choice == 'q':
        print("\nThanks for ordering. Have a great day.\n")
    else:
        print("\nI don't understand that choice, please try again.\n")
 
print("Thank you and have a wonderful day.")

当你运行这个应用,它将会打印出:

css 复制代码
Welcome to the food ordering center. What would you like to eat today?

[1] Enter 1 to order Thai.
[2] Enter 2 to order Indian.
[3] Enter 3 to order Mexican.
[4] Enter 4 to order Chinese.
[q] Enter q to quit.

What kind of food would you like to order? 

后续的输出将基于用户的输入。例如,如果用户输入 2,则输出将是:

Enjoy your Indian food!!

当用户键入 q 时,程序结束。

这是 Python while 循环的要点。这些循环是一个基本的编程方面,您将在代码中经常使用它们。

本文在云云众生yylives.cc/)首发,欢迎大家访问。

相关推荐
黄公子学安全2 小时前
Java的基础概念(一)
java·开发语言·python
程序员一诺2 小时前
【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】
后端·python
小木_.3 小时前
【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
爬虫·python·学习·分享·批量下载·图片下载器
Jiude3 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试
唐小旭3 小时前
python3.6搭建pytorch环境
人工智能·pytorch·python
是十一月末4 小时前
Opencv之对图片的处理和运算
人工智能·python·opencv·计算机视觉
爱学测试的李木子4 小时前
Python自动化测试的2种思路
开发语言·软件测试·python
kitsch0x975 小时前
工具学习_Conan 安装第三方库
开发语言·python·学习
梦幻精灵_cq5 小时前
《点点之歌》“意外”诞生记
python
张狂年少6 小时前
电力通信规约-104实战
java·开发语言·python