Python狗年龄换算程序无法正常打印输出,请问如何修复?
代码错误点说明
- 条件逻辑颠倒:原代码判断
age>0时提示输入正数,逻辑完全错误,应该是当输入年龄小于等于0时才属于非法输入,触发提示 - 语法使用错误:Python中
else后不允许附加判断条件,要么直接删除后面的age>2判断,要么将else替换为elif - 缩进不符合规范:Python依靠缩进区分代码块,原代码中
if语句、变量赋值行的缩进混乱,同一逻辑层级的代码必须保持一致的缩进量 - 变量未定义风险:如果输入年龄为非正数,程序仅会打印提示,不会给
dage变量赋值,原代码将dage打印逻辑放在所有分支外侧,不管输入合法不合法都会执行,会触发变量未定义的报错 - 存在冗余调试代码:最后一行单独打印
age的代码属于调试残留,不需要可直接删除
修正后可正常运行的代码(中文提示版)
age = int(input("你的狗今年多大了?")) if age <= 0: print("请输入正整数") elif age <= 2: dage = age * 10.5 print("对应人类年龄是", dage, "岁") else: dage = 21 + (age - 2) * 4 print("对应人类年龄是", dage, "岁")
如果需要保留原英文提示,替换输入、输出语句里的字符串即可:
age = int(input("How old is your dog?")) if age <= 0: print("Please input positive number") elif age <= 2: dage = age * 10.5 print("The dog is", dage, "years old in human age") else: dage = 21 + (age - 2) * 4 print("The dog is", dage, "years old in human age")
内容的提问来源于stack exchange,提问作者Alex Rice
相关产品推荐
相关产品推荐

