【发布时间】:2018-11-26 17:53:20
【问题描述】:
花了这么多时间试图找出其中的错误。对 Python 非常陌生(大学一年级,第三周的学生)。
age = int(input("Enter your current age in years: "))
if age >= 100:
print("You've already turned 100!")
elif age < 0:
print("Try again after you are born!")
else:
print("You will be 100 in " + (100 - age) + " years!")
如果我输入一个中间值(例如 18),这会引发错误“TypeError: Can't convert int to str implicitely”。我在这里找不到导致问题的原因??
【问题讨论】:
-
尝试显式类型转换。即..
str((100 - age))。还可以尝试阅读并弄清楚错误消息的真正含义。会帮助你很多前进。 -
Python 无法在字符串连接的中间对计算
100 - age进行隐式转换。尝试将计算包含在字符串转换中:str(100 - age)。这迫使 Python 1) 进行计算,2) 将结果转换为字符串,以及 3) 将其连接到您的输出。另外,请查看用于执行此类操作的 string.format() 方法以及较新的 f-strings。 -
这很令人困惑,我不是想把它变成一个字符串,但如果我按照你们俩的建议去做,它就会起作用。如果设置为“String”类型,它如何计算?我一直认为它必须是整数或浮点数才能计算!
-
计算确实需要是数字的,但是一旦 Python 做到了,它需要结果是一个字符串,然后才能与其他字符串执行连接(因为字符串是不可变的)。所以你得到你的数字结果,然后你必须转换它(这就是
str所做的)。现在你有了一个可以加入其他字符串的字符串。 -
嗯,有道理。感谢您为我解决这个问题:)
标签: python syntax-error typeerror