くり返しとデータの持ち方

INPUT · スライド

並んでいるものを取り出す

01 / 07

回数ではなく「もの」をくり返す

range は回数を決めてくり返す道具だった。でも実際にやりたいのは、こういうことのほうが多い。

「果物の名前をぜんぶ表示したい」「点数をぜんぶ足したい」。数えたいのではなく、並んでいるものを1つずつ扱いたいんだ。

02 / 07

値を並べて1つにまとめる

複数の値を順番に並べてひとまとめに持つ書きかたがある。角かっこで囲んで、カンマで区切るだけ。これをリストと呼ぶよ。

そのまま表示すると、並べたとおりの形で出てくる。書いた順番はそのまま保たれるのがリストの性質だよ。

kudamonos = ["りんご", "みかん", "ぶどう"]print(kudamonos)

実行結果

['りんご', 'みかん', 'ぶどう']

03 / 07

for で1つずつ取り出す

in のうしろにリストを書くと、中身が1つずつ変数に入ってくる。

1回目は "りんご"、2回目は "みかん"、3回目は "ぶどう" が kudamono に入る。中身がなくなったら終わりなので、回数を数える必要はないよ。

kudamonos = ["りんご", "みかん", "ぶどう"]for kudamono in kudamonos:    print(kudamono)

実行結果

りんご
みかん
ぶどう

04 / 07

名前のつけかた

リストを変数に入れずに、in のうしろへ直接書くこともできるよ。短いときはこちらのほうが読みやすい。

名前にはちょっとしたコツがある。まとめたほうは複数形、1つずつ受け取るほうは単数形。kudamonos と kudamono のようにそろえると、コードが英語みたいに読めるようになるよ。

for iro in ["あか", "あお"]:    print(iro)

実行結果

あか
あお

05 / 07

数のリストも作れる

リストに入れられるのは文字だけではない。数でもいいよ。

外に入れ物を用意して、中で足していく。range のときに覚えた形が、そのまま使えるね。

tens = [60, 80, 100]goukei = 0for ten in tens:    goukei += tenprint(goukei)

実行結果

240

06 / 07

range と同じ形をしている

for i in range(3): と for kudamono in kudamonos: は、まったく同じ形をしている。in のうしろが変わっただけだね。

実は Python の for は、もともと「並んでいるものを1つずつ取り出す」ための書きかた。range(3) も「0と1と2が並んでいるもの」を作っているんだ。回数を数えるのはそのおまけ、という順番なんだよ。

07 / 07

リストでできることは、まだまだある

いまは作ることと1つずつ取り出すことだけ覚えれば十分。

「3番目だけ取り出す」「あとから追加する」「何個入っているか数える」——こういう道具もちゃんと用意されているけれど、それはこのすぐあとのグループでまとめて扱うよ。

それまでは for で頭から順に回すやりかただけで書いてみよう。それだけでも、できることは一気に増えるからね。