我怎样才能让我的功能返回其他价值

时间:2015-09-22 15:01:49

标签: python function python-2.7 return

如何在此代码中使函数返回int而不是None。?

def num():
   try:
      user_input = int(raw_input('Enter an number:'))
      return user_input
  except:
     print 'PLZ enter an number'
     num()
print num()

1 个答案:

答案 0 :(得分:1)

递归调用自身内部的函数不会导致外部调用返回内部调用的返回值。你需要明确地返回它。

def num():
   try:
      user_input = int(raw_input('Enter an number:'))
      return user_input
   except:
      print 'PLZ enter an number'
      return num()
print num()

顺便提一下,如果用户连续输入99次错误值,则使用递归反复询问用户输入将导致调用堆栈达到其最大深度并崩溃。有关详细信息,请参阅Asking the user for input until they give a valid response