如何实现Python整数输入的空值与非法字符校验及重复询问
解决Python整数输入验证问题
嘿,我懂你刚学Python时的这个困扰——直接用int(input(...))的话,只要用户输入空内容或者非整数字符,程序就会崩溃对吧?咱们用循环+异常捕获就能完美解决,确保用户必须输入有效的整数才会继续往下走。
完整解决方案代码
# Asks for age while True: age_input = input("Please enter your age: ").strip() # 处理空输入(包括全空格的情况) if not age_input: print("Age cannot be left blank. Please try again.") continue # 尝试转换为整数,捕获非法输入的错误 try: age = int(age_input) # 可选:如果需要年龄是正数,再加这个判断 if age <= 0: print("Age must be a positive number. Please try again.") continue break # 输入有效,跳出循环 except ValueError: print("Invalid input. Please enter a valid integer for your age.") # 现在可以正常使用age变量啦 print(f"Got it, your age is {age}!")
代码逐行解释
while True: 创建一个无限循环,直到用户输入有效内容才退出。.strip(): 去掉输入内容前后的空格,这样用户输入一堆空格也会被识别为空输入。if not age_input: 判断输入是否为空,为空的话提示用户并重新进入循环。try-except ValueError: 尝试把输入转换成整数,如果失败(比如输入字母、小数),就捕获ValueError异常,提示用户输入合法整数。- 可选的正数判断:如果需要年龄必须是正数,在转换后添加
if age <=0的检查,不符合就继续循环。
这样修改后,不管用户是空输入、输入字母还是负数,程序都会一直提示重新输入,直到得到有效的正整数为止。
内容的提问来源于stack exchange,提问作者Rajan Stephens
相关产品推荐
相关产品推荐

