我已经很长时间没有编程了,我正在做一个将狗的年龄转换为人类年龄的函数,但是我遇到了一些错误,我无法通过它们。这是我的代码
def calculator():
# Get dog age
age = input("Input dog years: ")
try:
# Cast to float
d_age = float(age)
# If user enters negative number, print message
if(d_age < 0):
print("Age can not be a negative number", age)
# Otherwise, calculate dog's age in human years
elif(d_age == 1):
d_age = 15
elif(d_age == 2):
d_age = 2 * 12
elif(d_age == 3):
d_age = 3 * 9.3
elif(d_age == 4):
d_age = 4 * 8
elif(d_age == 5):
d_age = 5 * 7.2
else:
d_age = 5 * 7.2 + (float(age) - 5) * 7
print("\n \t \'The given dog age", age, "is", d_age, "human years.'")
except ValueError:
print(age, "is an invalid age")
calculator()
字符串
我不明白为什么d_age < 0不工作,我不明白为什么它会显示为错误“calculator()is not defined”。提前感谢!
注意:我看到已经有关于这一点的问题,但我正在以不同的方式做。
编辑:我只是没有用字典,因为它还没有在课程中介绍。我只是试着用我学到的东西。无论如何,谢谢。
6条答案
按热度按时间f8rj6qna1#
看起来你的代码结构不正确。如果你移动
elif
块并做一些小的修改,它会工作。如下所示:字符串
vkc1a9a22#
这是我的建议,尽管答案被接受了。
字符串
ivqmmu1c3#
这个怎么样?
字符串
cidc1ykv4#
字符串
我正在解决的问题有类似的条件,但需要不同的计算。我希望它能有所帮助(P.S最初我也不知道为什么我的狗年龄<0条件不起作用,原来,这一切都是关于将条件阻塞在一起并使用缩进(:)
snvhrwxg5#
如果任何人挣扎与缩进错误或“语法错误:意外的字符后,行连续字符”从打印(“\n \t '给定的狗的年龄”,年龄,“是”,d_age,“人类年。”
以下解决方案帮助了我
字符串
ni65a41a6#
希望这能有所帮助:导入追溯
def calculator():
字符串
calculator()#这一行调用calculator函数
输入狗龄:2
型
输入狗龄:-1(负数)年龄不能为负数-1
输入狗年:n(输入一个单词)
ValueError:无法将字符串转换为float:'n'