我写的Python的功能想总结的所有元组的数量,但it.s得到跑错后进入对象不是可迭代
def sumall(*x):
sm=0
for i in len (x):
sm= x[i] + sm
print sm
It.s包含到对象不是可迭代的错误当我输入
sumall(1,2,3)
请帮我
我写的Python的功能想总结的所有元组的数量,但it.s得到跑错后进入对象不是可迭代
def sumall(*x):
sm=0
for i in len (x):
sm= x[i] + sm
print sm
It.s包含到对象不是可迭代的错误当我输入
sumall(1,2,3)
请帮我
def sumall(x):
return sum(x)
sumall((1, 2, 3))
由于PyDev的回答,有一个内置的sum
方法,它完全符合你的要求。所以,你最好使用它。但是,如果你锻炼这样的代码,你有几个问题
def sumall(*x):
sm=0
.<---- there shouldn't be space between len and (x) and range is required
for i in range(len(x)):
sm= x[i] + sm <---- this can be converted to sm += x[i] which appends
print sm
len
是返回一个int
这是不迭代。另一方面是range
。
你的问题是,for x in l
语法如下l
视为可迭代 - list
,tuple
等
声明len(x)
返回一个整数,这是不以任何方式的迭代。
您应该简单地循环使用x
。
def sumall(*x):
sm=0
for item in x:
sm= item + sm
print sm
然而,在情况下,当你(站立着的时候在一次循环超过两个iterables如)需要循环通过索引可以使用range()
,它返回数的清单(从0到指定的号码)你可以循环。
def sumall(*x):
sm=0
for i in range(len(x)):
sm= x[i] + sm
print sm
'对于i在x'会做的 – schwobaseggl
可能的复制[int对象不是可迭代?](https://stackoverflow.com/questions/1938227/int-object-is-not-iterable) –