知っていることだけ

勉強していて役に立つ、理解の助けになるようなポイントを書いていきます。

和の計算法5通り あなたはいくつ思いつく? python初心者用問題

問 「1から10までの和を計算」するプログラムをpythonで5通り作成せよ。

以下答え。プログラムの結果は全て 55

forを使い、C言語風にやる (level1)

s = 0
for i in range(11):
    s+=i
print(s)
説明

range(引数) で0, 1,..., 引数-1 というリストが手に入る

sumを使う (bestなコード) (level2)

s = sum(range(11))
print(s)

ジェネレータ式を使用(level3)

s = sum(i for i in range(11))
print(s)
説明

ジェネレータ式とは、リスト等を受け取る関数の引数にfor文を直接書くやり方のこと

式 for ターゲットリスト in 反復可能オブジェクト
の形で得られる。

reduce(畳み込み)を使用(level4)

from functools import reduce
s = reduce(lambda x,y: x+y, range(11))
print(s)
説明

reduce(適用する関数, 反復可能オブジェクト)

で反復オブジェクトに繰り返し関数を適用した結果を返す。関数はラムダ式でもよい。

番外編 等差数列の公式を使う

s= (1+10)/2*10
print(s)
説明

和=(初項+末項)/2*項数