きっかけなんて些細なモンですよ。

NEW GAME!を観ました。プログラミング始めます。(17)

アニメは終わっちゃったけど、NEW GAME! 原作コミックもよろしくね。
f:id:kirintt:20171024001721p:plain

前回
nagoyanofes.hatenadiary.jp


※基本的に、愛知大学の有澤先生がプログラミングの講義で使用しているテキスト「Pythonによるプログラミング入門」に沿って進めています。
Python 2.7.13を使用しています。


今回のテーマは「数の総和」です。

カレンダーの例を挙げるまでもなく、数の和の計算は日常生活至る所に転がっている有り触れた問題である。そこでこの節では数の和の計算について考える。
(引用元:Pythonによるプログラミング入門, p. 40)

数の総和

数の総和について考えるために、この節ではいくつかの数字からなるリストの和を取り扱っている。

リストの要素の和

テキストでは、2つの問いとそれらの解答例、解説が示されている。自分で一度考えてから解答例や解説を読むことで理解が深まりんぐって感じだ。

問い(1)

 リスト d=[31,29,31,30,31,30,31,31,30] の要素の和を計算するプログラムを作りなさい。
(引用元:同上, p. 41)

解答例

譜 4.3 リストの要素の和を求める

d=[31,29,31,30,31,30,31,31,30]
s = 0
for x in d:
    s = s + x
print s

(引用元:同上, p. 41)

  • for を使ったシンプルなコード
  • for の前に s = 0 を置くことに注意!
  • dの要素の数が変わっても使える!便利!


結果

274
問い(2)

 リスト d=[31,29,31,30,31,30,31,31,30,31,30,31] の最初の 9 つの要素の和を求めなさい。
(引用元:同上, p. 41)

この問いは解答例が3つも提示されている。たまげたなぁ。

解答例(1)

譜 4.4 リストの最初の 9 つの要素の和を求めるプログラム

d=[31,29,31,30,31,30,31,31,30,31,30,31]
s = 0
n=0
for x in d:
    s = s + x
    n = n + 1
    if n == 9: break
print s

(引用元:同上, p. 42)

  • n で和を何回計算したか数えている
  • n = 9 で break (繰り返しを抜け出す)
  • n = n + 1 という書き方は、回数を管理したい時に頻繁に利用されるらしい


結果

274


解答例(2)

譜 4.5 リストの最初の 9 つの要素の和を求めるプログラム

d=[31,29,31,30,31,30,31,31,30,31,30,31]
s = 0
for n in range(0,9):
    s = s + d[n]
print s

(引用元:同上, p. 43)

  • d[n] は 配列 d の n+1 番目の要素(例えば、譜 4.5 では d[1] は 29)
  • d[1] のように、配列内の位置を表す [ ] 内の数字を「インデックス」と呼ぶ
  • インデックスは0から始まるので要注意!


(結果は省略)

解答例(3)

譜 4.6 リストの最初の 9 つの要素の和を求めるプログラム

d=[31,29,31,30,31,30,31,31,30,31,30,31]
s = 0
for x in d[:9]:
    s = s + x
print s

(引用元:Pythonによるプログラミング入門, p. 43)

  • 3つの解答例の中でいちばんシンプル!
  • d[:9] はリスト d の1~9個目までを要素に持つリストを意味する
  • 実は問い(1)の解答例に [:9] を付け加えただけ!(凄い)


(結果は省略)


今回はここまで!
少し加えただけでいろいろなことができて、すごいと思ました。(小並感)

☟次
nagoyanofes.hatenadiary.jp