1
while i<10:
   a = a + i
   print (a)
   i = i+1

また

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+ という意味です... 次に、合計を変数として設定します。両方のループで私を見せていただければ、それは素晴らしいことです:)

4

3 に答える 3

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

便利な演習として、これをリスト内包表記 (またはジェネレーター式) として書き直すことをお勧めします。

于 2012-10-25T23:56:28.073 に答える
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
于 2012-10-25T23:54:04.783 に答える
1

どうですか

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

(pythonicアプローチが必要な場合)

于 2012-10-25T23:56:25.500 に答える