return sum(h_in_second、m_in_second和s_second)类型错误:sum最多需要2个参数



为什么我不能在函数中返回和值?

def second_since_midnight(h, m, s):

h_in_second = 3600 * h
m_in_second = m * 60
s_second = s

return sum(h_in_second, m_in_second, s_second)

print(second_since_midnight(13, 30, 45))

善意

将jasonharper的答案放在这里,因为它似乎已经解决了问题。

您需要将值封装在可迭代的中,如列表或元组

sum((采用单个值序列,而不是单个参数。

不要使用sum(h_in_second, m_in_second, s_second),而是尝试将您的值封装在类似sum([h_in_second, m_in_second, s_second])的列表中

正如注释中所指出的,sum需要一个可迭代的参数,而不是单个参数来求和然而您收到的错误代码说它需要";最多两个论点";这似乎与这个说法不符。

第二个参数是总和的起始值。从Python 3.8及更高版本开始,可以将其指定为关键字参数。

>>> a = [1, 2, 3]
>>> sum(a)
6
>>> sum(a, 1)
7
>>> sum(a, start=1)
7

最新更新