因此,我仍然在努力理解当缺少带有参数的函数的括号时实际发生的情况。在这种情况下,我注意到当缺少Conventional.up大括号时,运行if语句代码的第三个块(即输入适当的约定),然后内核死亡,尽管预期的输出是正确的并且可以工作。谁能向我解释如果缺少括号会怎样?
temp = input("Input the temperature you like to convert? (e.g., 45F, 102C etc.) : ")
degree = int(temp[:-1])
i_convention = temp[-1]
if i_convention.upper() == "C":
result = int(round((9 * degree) / 5 + 32))
o_convention = "Fahrenheit"
elif i_convention.upper() == "F":
result = int(round((degree - 32) * 5 / 9))
o_convention = "Celsius"
else:
print("Input proper convention.")
quit()
print("The temperature in", o_convention, "is", result, "degrees.")
答案 0 :(得分:0)
这意味着您不是在调用函数,而是在查看函数对象本身。 i_convention.upper == "C"
将upper
函数对象与字符串"C"
比较,该字符串永远不会为True
,因为函数不等于字符串。
您正在使用的可视化工具
>>> print(str.upper)
<method 'upper' of 'str' objects>
函数就像Python中的其他 value 一样;它们也可以被传递和比较,而无需调用。