我正在尝试在执行“退出”用户输入后停止我的函数调用。但未能实现这一目标。 以下是我的代码。
> 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]:
答案 0 :(得分:0)
在调用ufun()函数之前,应该检查EXIT的条件。现在,自检查结束后,这将调用显示文本的ufun()函数'请输入您的选择? [Y | N]:'
另外,在ufun()函数的最后一个条件中,我认为你试图调用anofunc()函数。为此,您只需编写没有def的anofunc()。 def用于定义函数定义。
你也经常一次又一次地调用每个功能,我认为这不是你打算做的。例如,如果您键入除exit之外的其他内容并在之后键入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()