Python 允许包含两个或三个数字的列表的函数
函数被定义为使用一个列表的三个数字,然后当我使用n2列表时,它工作得非常好。但它不使用n1,因为它只有2个参数,当它试图找到n1时[2]会给出一个错误 如何生成允许不同长度列表的函数?? 只有那两个或三个,我不需要更多 谢谢各位:Python 允许包含两个或三个数字的列表的函数,python,python-3.x,Python,Python 3.x,函数被定义为使用一个列表的三个数字,然后当我使用n2列表时,它工作得非常好。但它不使用n1,因为它只有2个参数,当它试图找到n1时[2]会给出一个错误 如何生成允许不同长度列表的函数?? 只有那两个或三个,我不需要更多 谢谢各位: def sum (n): return n[0] + n[1] + n[2] n1 = [1, 2] n2 = [1, 2 ,3] print( sum(n2)) 显然,这只是整个程序的一个缩减。但它很有说明性让它摄取args和sum def sum1
def sum (n):
return n[0] + n[1] + n[2]
n1 = [1, 2]
n2 = [1, 2 ,3]
print( sum(n2))
显然,这只是整个程序的一个缩减。但它很有说明性让它摄取args和sum
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)
您可以明确说明允许的输入范围:
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是一个python函数名,并且通常使用与这些函数相同的名称声明函数不是一个好主意。顺便说一句,有一个内置的sum函数可以对任意长度的列表求和。但我想这是一个练习,你应该编写你自己的版本。@Jean-Françoisfare这不是一个很好的重复目标,因为OP需要一个函数,它只接受一个列表参数,而不是多个数字参数。同意。我不会重新打开,因为它是重复的。改变了目标。如果你找到一个更好的,请随意编辑/添加它,也可能是无限递归:啊。哈哈,我困了。谢谢你接电话。现在fixed@PM2Ring谢谢我在手机上做这件事,但没有捕捉到列表输入。解决了这个问题