我寫的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) –