【发布时间】:2014-01-06 04:05:41
【问题描述】:
当用户输入无效输入时,我试图阻止代码中发生错误。这是一个演示我的问题的简化示例。
def foo():
try:
a = int(input('1,2,3 or 4'))
except (ValueError, UnboundLocalError):
print ('invalid input')
print ('')
print ('Try 1,2,3 or 4')
foo()
if a == 3:
print ('done')
当我输入一个整数时,该函数运行完美。当我在a = int(input()) 部分输入一个字符串时,它会再次运行foo()。但是,当我然后输入 3 时,它会打印 done',但会继续提供尽可能多的 ValueError,因为我输入不正确,然后是 UnboundLocalError。我认为这是因为我一遍又一遍地运行该函数在自身内部,因此它必须“出来”。有没有更好的方法来重新运行函数而不使用递归?我是编程新手。
【问题讨论】:
标签: function recursion python-3.x