You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:57:25