forで何度も試そう。
ROBORONが果物を1個ずつ調べるなら、同じ命令を何回も書かずに済みます。for と range を使ってみよう。
学びを始める
この回でできるようになること
- 01for でリストの要素を順番に扱う
- 02range() の終わりが含まれない理由を説明できる
- 03enumerate() とリスト内包表記の入口を知る
1個ずつ、順番に
for fruit in fruits: は、リストから1個ずつ取り出して処理します。字下げした行を、要素の個数だけ繰り返します。

果物が100個だったら、printを100回書くの?

for なら1回の書き方で済むんだよ。fruit に1個ずつ入る様子を見ようね。

繰り返す間は同じ命令でも、fruit の値だけ変わります。
fruits = ["リンゴ", "バナナ", "みかん"]
for fruit in fruits:
print(fruit, "を確認")
なぜ? 1周目はリンゴ、2周目はバナナ、3周目はみかん。リストが終わるとループも止まります。

for の次の行も、半角スペース4個の字下げが必要だよ。
回数を決めて繰り返す
range(3) が作るのは0、1、2。終わりの3は含まれません。開始と刻み幅も指定できます。

0から10まで表示したいのに range(10) だと9で止まる!

そうなんだよ。10も含めるなら range(11)。終了位置は『ここに着く前に止まる』という目印なんだ。

偶数なら range(2, 11, 2) で2、4、6、8、10です。
for n in range(3):
print(n)
print("偶数:")
for n in range(2, 11, 2):
print(n)
なぜ? range(開始, 終了, 刻み幅)。終了の値は含まれないため、10までなら終了は11です。

range は必要な数を順に生成する道具。list(range(3)) とすると一覧で見られるよ。
番号もほしいとき
enumerate() を使うと、位置番号と中身を同時に受け取れます。リスト内包表記は、繰り返しで新しいリストを作る短い書き方です。

『1番 リンゴ』って表示したいけど、番号を数える変数もいる?

enumerate() が番号を付けてくれるよ。画面では1番からにしたいなら start=1 を使うんだ。

新しいリストを作るだけなら [n * 2 for n in ...] も便利ですね。
fruits = ["リンゴ", "バナナ"]
for number, fruit in enumerate(fruits, start=1):
print(number, fruit)
doubled = [n * 2 for n in range(3)]
print(doubled)
なぜ? enumerate は番号と値の組を返します。内包表記は range(3) の0、1、2を2倍して新しいリストにします。

短い書き方が読みづらいときは、普通の for と append() で書いて大丈夫。
予想して、理由まで確かめよう
答えを選んだら、説明を読んでから実行欄でも試してみよう。
for n in range(2, 8, 2): で使われる n は?
答えを選ぶと理由が表示されます。

小さな練習:1から5まで足そう
for と range() を使い、1+2+3+4+5 の合計を表示しよう。
ヒント:合計を0から始め、range(1, 6) を巡ります。
解き方の一例と理由を見る
total = 0
for n in range(1, 6):
total += n
print(total)終了値6は含まれないので、1〜5を足して15です。
100枚の写真を調べるなら

1枚ずつ同じ検査をするの、ROBORONに任せたい!

for が向いているね。ただし100枚を全部同じ条件で調べてよいかは別の問題。暗い写真や斜めの写真も混ぜて、結果を確かめようね。

処理を自動化した後も、結果の確かめ方が重要なのですね。
自分の手で動かそう
例題を選び、結果を予想してから「実行する」を押そう。値を変えると、どの行が結果を決めるか見えてくるよ。
書き換えて試せます。Tabキーは半角スペース4つ分です。
fruit の値が周回ごとに変わります。
この入力欄の使い方
コード内の input() に渡す値を1行ずつ書きます。input() がない例では空欄で大丈夫です。複数回呼ぶコードでは上から順に使います。
準備できました。
実行結果
実行すると、ここに結果を表示します。
Pythonは閲覧中の端末内で動作します。

同じ仕事は、ループに任せよう。 今日覚えた道具を、別の値でも試してみよう。自分で理由を説明できたら、とてもいい進歩なんだよ。