停止函数调用
问题描述:
我试图在执行“退出”用户输入后停止我的函数调用。但未能实现这一目标。 以下是我的代码。停止函数调用
> def ufun():
> while True:
> uipt = str(raw_input('Please enter your choice? [y|n]:'))
> if uresp == "y":
> ufun.uipt = "y"
> break
> elif uresp == "n":
> ufun.uipt = "n"
> break
> else:
> print("Please enter either [y|n]") def anofunc():
>
> def anofunc():
> ulist = str(raw_input('Enter your choice [ALL|AB|BC|EXIT] : ')).upper()
> ufun()
> if ulist == "ALL":
> #execute something
> elif ulist == "AB":
> #execute something
> elif ulist == "BC":
> #execute something
> elif ulist == "EXIT":
> return
> else:
> print "Please enter a valid option"
> anofunc()
anofunc()
所以,当我尝试退出代码,而进入它问我要“退出”用户输入“请输入您的选择[Y | N]:”我不退出的同时要。我想我的代码立即退出。 如果我能做到这一点,请帮助我。
Enter your choice [ALL|AB|BC|EXIT] : exit
Please enter your choice? [y|n]:
答
在调用ufun()函数之前,应检查EXIT的条件。现在,由于检查之后,这会调用ufun()函数,该函数显示文本'请输入您的选择? [Y | N]:”。
此外,在ufun()函数的最后一个条件中,我认为您正在尝试调用anofunc()函数。为此,您只需编写不带def的anofunc()。 def用于定义函数定义。
你也在不断地调用每个函数,我认为这不是你想要做的。例如,如果您键入的是退出以外的内容,然后键入EXIT,则在返回调用之后,您仍然会返回早期函数。如果我没有错,你试图不断地询问用户想要做什么,直到他们输入退出。要做到这一点
的一种方法是使while循环anofunc()函数:
def ufun():
uipt = raw_input('Please enter your choice? [y|n]:')
if uipt == "y":
ufun.uipt = "y"
elif uipt == "n":
ufun.uipt = "n"
else:
print("Please enter either [y|n]")
def anofunc():
while True:
ulist = raw_input('Enter your choice [ALL|AB|BC|EXIT] : ').upper()
if ulist == "EXIT":
break
ufun()
if ulist == "ALL":
#execute something
elif ulist == "AB":
#execute something
elif ulist == "BC":
#execute something
else:
print("Please enter a valid option")
anofunc()
您的通话ufun()右后的第一次提示..这可能就是为什么那发生 – ryekayo
@ryekayo Ya有效,我希望该功能只能执行一次,即使我提供了多个用户输入,如:AB | BC –
在这种情况下,我会在EXIT的条件之后添加exit()。 – ryekayo