def function():
restart = 'yes'
while restart == 'yes':
**long program here**
restart = input("would you like to restart?: ")
在/ long程序/部分中,我有很多变数,如果' if'如果用户想要退出该函数,则每个语句都有一个方法,那么当提示输入变量时,如果用户输入0,程序将退出该函数吗?
感谢
答案 0 :(得分:1)
你可以使用iter
的2-arg形式 - 在循环停止的地方为它提供一个标记值,例如:
def function():
for value in iter(lambda: input('would you like to restart?:'), '0'):
pass # do your stuff here
return None # or some meaningful result here
nb:如果使用Python 2.x
,请使用raw_input
答案 1 :(得分:0)
只需使用辅助函数来检查变量是否有"退出" value,如果是,则退出整个程序(或抛出异常并捕获并退出)。
例如(伪代码):
def check_exit(var, exit):
if var == 0:
exit()
return
return var
该函数接受变量" var"以及在退出时调用的函数,因此您可以传递自定义退出函数来执行您需要的操作
类似的替代方案(变体)是一次性检查所有变量(一旦用户插入它们),并且如果任何人具有"退出值"则退出。然后,此检查代码或函数可能位于其他代码的末尾,并且仅对所有变量调用一次。正如评论中所见,这是一个设计问题而不是特定的python程序问题本身
答案 2 :(得分:-1)
所以你想要下面的代码片段,但要退出一个函数。可悲的是,这是不可能的。你需要的是重新考虑你的算法,这样你就可以将它分成多个子程序,当它们返回到while块时会被检查,并且要么退出循环以退出函数或保持它流动。
第一个回答:
好吧,如果我正确地理解了你的问题,那么当你要求用户输入时,你想让它可以退出程序,当用户输入0时。如果我理解正确,你可以做类似的事情:
def exit_if_zero(val):
if val.strip() == "0":
sys.exit(0)
return val
返回输入的值,但如果用户提供0
,则会退出。所以你可以用以下方式使用它:
value = exit_if_zero(input("enter a value"))
HTH