当函数的参数()丢失时,实际发生了什么?

时间:2019-12-09 07:40:21

标签: python function arguments

因此,我仍然在努力理解当缺少带有参数的函数的括号时实际发生的情况。在这种情况下,我注意到当缺少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.")


1 个答案:

答案 0 :(得分:0)

这意味着您不是在调用函数,而是在查看函数对象本身。 i_convention.upper == "C"upper函数对象与字符串"C"比较,该字符串永远不会为True,因为函数不等于字符串。

您正在使用的可视化工具

>>> print(str.upper)
<method 'upper' of 'str' objects>

函数就像Python中的其他 value 一样;它们也可以被传递和比较,而无需调用。