停止函数调用

问题描述:

我试图在执行“退出”用户输入后停止我的函数调用。但未能实现这一目标。 以下是我的代码。停止函数调用

> 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

您的通话ufun()右后的第一次提示..这可能就是为什么那发生 – ryekayo

+0

@ryekayo Ya有效,我希望该功能只能执行一次,即使我提供了多个用户输入,如:AB | BC –

+0

在这种情况下,我会在EXIT的条件之后添加exit()。 – ryekayo

在调用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()