在附加的代码片段中,目标是接收用户输入,并根据它是否为整数,返回整数或递归调用函数,直到给出有效整数。
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)
如果用户在第一个函数调用上正确响应(即整数),则该整数确实从函数返回。
问题是,如果用户行为不端并且首先没有用整数响应,只在后续尝试中给出整数,我可以看到,使用调试器,try
子句总是转到except
子句......即使第二次调用是一个整数。
总结一下:
verify_input(12) # => 返回 12
verify_input("Hello") # => 返回对 verify_input 的调用 ---> 用户给出答案 "12" => 返回None
。
提前致谢。