为何无法为这段Python输入验证代码添加while循环?
解决方案:实现持续的数字输入验证
你的问题在于当前代码仅在首次输入错误时重试一次,若再次输入无效内容,就没有额外的异常捕获逻辑了,直接触发ValueError。要实现持续重试直到输入有效数字,可以把输入验证逻辑封装成可复用的函数,结合while True循环来实现。
修改后的代码
def get_valid_float(prompt): while True: try: return float(input(prompt)) except ValueError: print('invalid input!') # 获取两个有效数字 n1 = get_valid_float('enter a number: ') n2 = get_valid_float('enter a second number: ')
代码说明
- 封装
get_valid_float函数,接收提示文本作为参数,避免重复编写相同的验证逻辑,适配你的大型程序场景。 while True创建无限循环,直到用户输入有效数字时,return语句会终止循环并返回正确数值。- 每次输入无效时,
except ValueError块打印错误提示,随后自动回到循环开头重新请求输入。
这样无论用户输入多少次无效内容,程序都会持续提示,直到输入合法数字为止,完全解决了你遇到的问题。
内容的提问来源于stack exchange,提问作者jgood
相关产品推荐
相关产品推荐

