Python: 如何保持重复执行一个程序,直到得到特定的输入?
Python:如何保持重复一个程序,直到获得特定的输入?
有时候,我们需要编写一个程序,要求用户输入特定的值,只有当用户输入特定的值时,程序才会停止运行。这种情况下,我们可以使用一个单独的变量来跟踪输入是否有效。
在Python中,可以使用以下代码来实现这个功能:
good_input = None while not good_input: user_input = raw_input("请输入正确的字母:") if user_input in list_of_good_values: good_input = user_input
以上代码中,我们首先将`good_input`变量初始化为`None`,表示输入无效。然后,使用`while`循环来不断重复程序,直到获得有效的输入。
在每次循环中,我们使用`raw_input`函数提示用户输入正确的字母。然后,使用`if`语句检查用户输入是否在`list_of_good_values`列表中。如果用户输入的字母是有效的,我们将其赋值给`good_input`变量,表示输入已经有效。这样,循环就会停止。
如果用户输入的字母不是有效的,循环会继续执行,再次提示用户输入。直到获得有效的输入为止,程序才会停止运行。
通过使用一个单独的变量来跟踪输入是否有效,我们可以保持程序的重复运行,直到获得特定的输入。这种方法可以在很多需要用户输入特定值的情况下使用,提高程序的交互性和鲁棒性。
Python中如何重复执行程序直到获得特定输入?
在Python中,有两种方法可以实现这个功能。第一种方法如下:
while True: # 持续循环 inp = raw_input() # 获取输入 if inp == "": # 如果输入为空行... break # ...跳出循环
第二种方法如下:
inp = raw_input() # 获取输入 while inp != "": # 直到输入为空行才退出循环 inp = raw_input() # 再次获取输入
请注意,如果你使用的是Python 3.x版本,你需要将`raw_input`替换为`input`。
如果没有更多的输入,这将在最后一个输入引发EOF错误。
你可以通过以下方式避免这个错误:`except EOFError: break`。
每当我写一个while循环,其中条件检查的变量是在循环内部设置的(因此必须在循环之前初始化该变量,就像你的第二个示例中一样),我都觉得不太对劲。然后我会搜索`python repeat until`来提醒自己应该接受这种感觉 🙂