Python函数调用sum返回值触发TypeError:参数数量超限求助
sum函数调用错误原因及修复方案
错误原因
Python内置的sum()函数的正确语法是sum(iterable, start=0):
- 第一个参数必须是可迭代对象(比如列表、元组这类包含多个元素的容器),不能直接传入多个独立数值;
- 第二个参数是可选的累加起始值,默认值为0。
你直接传入了三个独立的数值参数h_in_second, m_in_second, s_second,超出了sum函数允许的参数数量(最多2个),因此触发TypeError。
修复方案
有两种简单的修复方式:
方式1:将数值放入可迭代对象后传给sum
把三个数值打包成列表或元组,作为sum的第一个参数:
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))
方式2:直接使用加法运算符(更高效简洁)
对于少量数值的累加,直接用+运算符比调用sum函数更直观:
def second_since_midnight(h, m, s): h_in_second = 3600 * h m_in_second = m * 60 s_second = s return h_in_second + m_in_second + s_second print(second_since_midnight(13, 30, 45)) # 输出结果:48645
内容的提问来源于stack exchange,提问作者Z.Oleg
相关产品推荐
相关产品推荐

