关于“while”循环
编写代码时,一个常见的难题是让其执行未知次数的任务。 在本单元中,你希望允许用户输入行星名称列表。 遗憾的是,你不知道用户输入了多少名称。 若要支持次数未知的循环,可以使用 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 后退出。
注意
在本示例中,我们使用 lower
了将输入转换为小写,这样即可进行不区分大小写的比较。
可以使用新输入的字符串,就像使用 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_input
if user_input:
# Store the value in the list
inputs.append(user_input)
# Prompt for a new value
user_input = input('Enter a new value, or done when done')
请注意 if
循环内的 while
语句。 此语句测试 user_input
内的字符串值。 如果 while
循环是第一次运行,则没有任何值,因此没有任何内容要存储在 inputs
中。 第一次运行后,user_input
始终都会保留用户输入的值。 由于要测试 while
来确保该值不等于 done
(用户为退出应用而输入的单词),因此你知道当前值是可添加到列表中的值。
注意
你可能熟悉支持 do
循环的其他编程语言,这让你能够在循环底部执行测试。 Python 不提供 do
循环。