2012-10-25 44 views
1
while i<10: 
    a = a + i 
    print (a) 
    i = i+1 

添加在python

for i in range(10): 
    sum = sum + i 
    print 

0 
1 
3 
6 
10 
15 
21 
28 
36 
45 

那我怎麼才能加在一起他們通過編寫代碼進一步? 我的意思是1 + 3 + 6 + 10 + 15 + 21 + ...然後將總數設置爲變量! 這將是巨大的,如果你能告訴我在這兩個循環:)

+0

不要打電話給你的變量總和;這是一個內置函數的名稱。 (你可能想在解釋器控制檯鍵入'help(sum)',因爲它可以幫助你。) – abarnert

回答

1
In [26]: summ=0 

In [27]: foo=0  

In [28]: for i in range(10): 
    sum+=i   #add i to summ 
    foo+=sum  #add summ to foo 
    ....:  
    ....:  

In [31]: sum 
Out[31]: 45 

In [32]: foo 
Out[32]: 165 

或一個班輪:

In [58]: sum(map(sum,map(range,range(1,11)))) 
Out[58]: 165 

timeit比較:

In [56]: %timeit sum(sum(i + 1 for i in range(n)) for n in range(1000)) 
10 loops, best of 3: 128 ms per loop 

In [57]: %timeit sum(map(sum,map(range,range(1,1001)))) 
10 loops, best of 3: 27.4 ms per loop 
1

如何

sum(sum(i + 1 for i in range(n)) for n in range(10)) 

(如果你想有一個Python的方法)

2

如何:

total, totaltotal = 0, 0 
for i in range(10): 
    total += i 
    totaltotal += total 
    print total, totaltotal 

另外,也可以使總數的列表,並存儲它們分別操作上:

total, totals = 0, [] 
for i in range(10): 
    total += i 
    totals.append(total) 
    print total 
totaltotal = 0 
for i in range(10): 
    totaltotal += totals[i] 
    print totaltotal 

你可能希望將其重寫爲列表理解(甚至是生成器表達式),作爲一種有用的練習。