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

Python比较运算符判断年龄区间时输入9无法正确触发未成年提示问题

问题原因

你的代码核心疏漏是未将用户输入的内容转换为整数类型,直接用字符串做数值比较,触发了字符串字典序比较的逻辑错误。
Python中input()函数默认返回字符串类型,字符串的大小比较规则是逐位对比字符的ASCII码值,和数值大小比较逻辑完全不同:

  • 输入年龄10时,得到字符串'10',和判断条件里的'18'比较时,第一位字符都是'1',第二位字符'0'的ASCII码小于'8',因此判定'10' < '18',刚好走到未成年提示分支,属于巧合正确。
  • 输入年龄9时,得到字符串'9',和'18'比较时,第一位字符'9'的ASCII码(57)远大于'1'的ASCII码(49),因此会错误判定'9' >= '18',走到超龄判断分支,输出错误结果。
修正方案
  1. 获取用户输入后,先用int()函数将输入内容转换为整数,再做条件判断
  2. 保持区间判断逻辑简洁,不需要多余的边界限制
    修正后的可运行代码:
age = int(input("Enter your age: "))
if 18 <= age <= 22:
    print("Eligible")
elif age < 18:
    print("sorry You are underage")
else:
    print("sorry You are overage")

内容的提问来源于stack exchange,提问作者Pranab Poira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:15:40