编写调查问卷Python程序时年龄计算功能异常,请问代码哪里有问题
代码问题排查及修复
你提供的代码运行报错的核心原因是类型不匹配,具体问题和修复方案如下:
存在的问题
- 你已经将
birth和year两个输入值转换为整数类型,二者相减得到的年龄结果本身就是整数,不需要额外套int()做二次转换 - Python不支持整数和字符串直接用
+拼接,你把计算得到的年龄(整数)和后半段提示文本(字符串)直接相加就会触发类型报错,导致程序无法运行
修复后的代码
有两种常用修复方案,你可以按需选择,已经将原英文提示翻译为中文:
方案1:手动转换年龄类型后拼接
如果要保留原代码的拼接逻辑,只需要把年龄计算结果转成字符串即可:
birth = int(input('你出生的年份是?')) year = int(input('今年是哪一年?')) print(str(year - birth) + ' 就是你的年龄')
方案2:使用f-string格式化输出(更推荐)
不需要手动处理类型转换,写法更简洁易读:
birth = int(input('你出生的年份是?')) year = int(input('今年是哪一年?')) print(f'{year - birth} 就是你的年龄')
可选优化提示
当前的计算逻辑只能得到近似周岁,如果你需要更精准的年龄结果,可以补充收集用户的出生月日,和当前日期对比后再调整年龄数值。
内容的提问来源于stack exchange,提问作者Apollo May
相关产品推荐
相关产品推荐

