O.F*_*.F. 2 python recursion try-except
在附加的代码片段中,目标是接收用户输入,并且根据它是否为整数,返回整数或递归调用函数,直到给出有效整数.
def verify_input(msg, str_exp=True, req_str=None):
user_input = input(msg)
if str_exp:
pass # TODO: implement later
else:
try:
return int(user_input)
except ValueError:
verify_input("Enter a whole number please. ", str_exp=False)
Run Code Online (Sandbox Code Playgroud)
如果用户在第一个函数调用上正确响应(即整数),则确实从函数返回整数.
问题是,如果用户行为不端并且首先没有响应整数,只在后续尝试中给出整数,我可以看到,使用调试器,该try子句总是转到except子句...即使第二次调用是整数.
综上所述:
verify_input(12)#=>返回12
verify_input("Hello")#=>返回调用verify_input ---> user给出答案"12"=>返回None.
提前致谢.
你在街区return打电话时错过了一个:verify_inputexcept ValueError
try:
return int(user_input)
except ValueError:
return verify_input("Enter a whole number please. ", str_exp=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
634 次 |
| 最近记录: |