只是爲了使回答的形式快速評論。如果您想列出0到10之間的所有奇數,那麼結束點並不重要。如果列表從0到11,那麼結束點很重要。請記住,range(0,11) = [0,1,2,3,4,5,6,7,8,9,10]
,並且將不包括11
我們解釋正在使用發電機。按照您的定義使用numbers
進行列表,您可以執行此操作。
odds = []
for num in numbers:
if num % 2 == 1:
odds.append(num)
這會給你odds = [1,3,5,7,9]
。 Python有一些調用列表理解的功能,使得像這樣的事情變得很容易。以上可以很容易地這樣寫
odds = [num for num in number if num % 2 == 1]
既然你想和關閉列表中的所有數字和sum
函數採用列表,答案就是
sum([num for num in number if num % 2 == 1])
注意,大多數的答案沒有括號。這是因爲沒有它,它就成爲一個發電機。
odds = (num for num in number if num % 2 ==)
print odds #--> <generator object <genexpr> at 0x7f9d220669b0>
odds.next() # 1
odds.next() # 3
...
由於sum
需要這些以及和發電機比列表,這就是爲什麼最好的答案是
sum(num for num in numbers if num % 2 == 1)
當你設定總數= 0時究竟做了什麼?總數+ =數字是做什麼的? – PhysicsLemur
@ user3081186:你需要在'total'中有* a *號碼才能夠爲其添加更多值。總而言之,從'0'開始是一個好的開始。 –
total + = num只是將總數加起來並將其存回總計。 – Thayne