You need to enable JavaScript to run this app. Python年龄输入负数校验:如何在输入负整数时报错并允许重新输入
优惠活动
大模型
产品
解决方案
定价
更多

Python年龄输入负数校验:如何在输入负整数时报错并允许重新输入

实现方案

你只需要在原有的年龄输入校验逻辑后,增加负数判断分支即可,最小改动的完整代码如下:

while True:
    try:
        name = str(input("Enter your name="))
        age = int(input("Enter your age="))
        # 新增负数年龄校验逻辑
        if age < 0:
            print("error!! 年龄不能为负数,请重新输入")
            continue
    except ValueError:
        print("error!! 请输入正确格式的数值")
        continue
    else:
        break

current_year = int(input("What is the current year you are living in="))

n = 100 - age
x = n + current_year
print(name,"",x,"is the year you will turn 100")

改动说明

  • 在age成功转成int类型后,立即判断是否小于0,若满足条件直接打印错误提示,执行continue回到循环开头让用户重新输入
  • 原有非数字输入的异常校验逻辑完全保留,不影响原有功能
  • 不需要额外新增循环结构,复用现有的输入重试循环即可

可选优化(输错年龄无需重输姓名)

如果希望用户输入合法姓名后,仅重试年龄输入,可以把年龄的校验逻辑拆成独立循环,全中文提示的优化版代码如下:

# 姓名输入单独校验
while True:
    name = input("请输入你的姓名:")
    if name.strip() != "":
        break
    print("error!! 姓名不能为空,请重新输入")

# 年龄输入单独校验
while True:
    try:
        age = int(input("请输入你的年龄:"))
        if age < 0:
            print("error!! 年龄不能为负数,请重新输入")
            continue
        break
    except ValueError:
        print("error!! 请输入合法的数字年龄,请重新输入")

current_year = int(input("请输入当前年份:"))

n = 100 - age
x = n + current_year
print(f"{name} 年满100岁的年份是:{x}")

内容的提问来源于stack exchange,提问作者Allmdar Arslan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:54:03