该函数被定义为使用三个数字的列表,然后当我使用n2列表时,它完美地工作。但是它没有使用n1,因为它只有2个参数,当它试图找到n1 [2]时会出错。
我如何制作一个承认不同长度列表的功能? (只有那些2或3,我不需要更多
谢谢:)
def sum (n):
return n[0] + n[1] + n[2]
n1 = [1, 2]
n2 = [1, 2 ,3]
print( sum(n2))
显然,这只是整个计划的缩减。但这是一种愚蠢的行为
答案 0 :(得分:0)
您可以真正明确允许的输入范围:
def my_sum(n):
if len(n) == 2:
return n[0] + n[1]
elif len(n) == 3:
return n[0] + n[1] + n[2]
else:
raise ValueError("The list must be exactly 2 or 3 elements long.")
我将你的函数重命名为my_sum,因为sum
是一个built-in python函数名,并且声明与这些函数同名的函数通常不是一个好主意。
答案 1 :(得分:-1)
让它摄取args并求和。
def sum1(val_list):
total = 0
for x in val_list:
total += x
return total
或简单
def sum1(val_list):
return sum(val_list)
如果你愿意,如果它超过3,你总是可以提出错误。
def sum1(val_list):
if len(val_list) > 3:
raise ValueError()
return sum(val_list)