编写代码时,一个常见的难题是让其执行未知次数的任务。 在本单元中,你希望允许用户输入行星名称列表。 遗憾的是,你不知道用户输入了多少名称。 若要支持次数未知的循环,可以使用 while 循环。
while 循环在当某个条件为 true 时执行操作。 可以使用 while 循环来:
检查文件中的另一行。
检查是否已设置标志。
检查用户是否已输入完值。
检查是否有其他更改,以指示代码可以停止执行操作。
重要:创建 while 循环时,要记住的最重要一点是确保条件发生变化。 如果条件始终为 true,则 Python 将继续运行你的代码,直到程序发生故障。
while 循环的语法类似于 if 语句的语法。 要同时提供条件和要在条件为真时运行的代码。
while 循环有三个重要部分:
关键字 while,后跟一个空格。
测试的条件。 如果条件为 true,则运行 while 循环内的代码。
要为每次迭代运行的代码,使用嵌套空格进行了缩进。 例如:
while <condition>:# code here
让我们看看如何创建代码来提示用户输入值,然后允许他们在输入完值后输入 done。 在我们的示例中,用户输入是在 while 循环的基础上测试的条件。
user_input = ''while user_input.lower() != 'done':user_input = input('Enter a new value, or done when done')
请注意,你要使用 input 来提示用户。 每次用户输入新值时,都将更改条件,这意味着 while 循环将在输入 done 后退出。
可以使用新输入的字符串,就像使用 input 捕获的任何其他字符串一样。 如果要将其添加到列表中,可以使用类似于以下示例的代码:
# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []# The while loop
while user_input.lower() != 'done':# Check if there's a value in user_inputif user_input:# Store the value in the listinputs.append(user_input)# Prompt for a new valueuser_input = input('Enter a new value, or done when done')
请注意 while 循环内的 if 语句。 此语句测试 user_input 内的字符串值。 如果 while 循环是第一次运行,则没有任何值,因此没有任何内容要存储在 inputs 中。 第一次运行后,user_input 始终都会保留用户输入的值。 由于要测试 while 来确保该值不等于 done(用户为退出应用而输入的单词),因此你知道当前值是可添加到列表中的值。