LEVEL 3 ・ 繰り返し / Lesson 06

同じ作業を繰り返してもらう

3人でも100人でも、お願いは1回。for を使って、同じ作業を順番にやってもらいます。

目安 12分 ・ インストール不要

このレッスンが終わったら

「for は、リストの中身を1つずつ取り出して、同じ作業を繰り返してもらう言葉」と言える。

STEP 1

できることを見る

部署のメンバー全員に、同じあいさつ文を送ることを考えてみましょう。3人なら手で書けますが、100人だったらどうでしょう。

Pythonでは、お願いを1回書くだけで、全員分を順番にやってくれます。

for name in ["田中", "佐藤", "鈴木"]:
    print(name + "さん、お疲れさまです")

人数が100人に増えても、書くコードはほとんど変わりません。

STEP 2

動かしてみる

3人分のあいさつを作るコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

同じ1行の print が、3回実行されましたね。名前だけが、田中 → 佐藤 → 鈴木と入れ替わっています。

STEP 3

1行ずつ読む

1行ずつ日本語にしてみる
for name in ["田中", "佐藤", "鈴木"]:田中・佐藤・鈴木の中から、1人ずつ取り出して、「name」という名前で受け取る
print(name + "さん、お疲れさまです")(1人ずつ)名前のあとに「さん、お疲れさまです」を付けて表示する

日本語にすると

田中・佐藤・鈴木を1人ずつ取り出して、そのたびに「〇〇さん、お疲れさまです」と表示してください。
  1. 1回目name = 田中
  2. 2回目name = 佐藤
  3. 3回目name = 鈴木
  4. おしまい取り出すものがなくなった
字下げした部分が、取り出した数だけ繰り返されます。(字下げのルールは if のときと同じです)

name は、取り出した1人分を入れておく名前です。前に学んだ「名前を付けて覚える」の仲間で、1回ごとに中身が入れ替わります。

STEP 4

1か所だけ変える

① 人を増やす。 リストに "高橋" を足して、実行してみましょう。コードの書き方は変えていないのに、4人分表示されます。

人数を増やしてみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

② 足し算を繰り返す。 繰り返しは、合計を出すときにも使えます。

売上を1件ずつ足していくコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
for と total の動きを日本語にする
total = 0合計を入れる箱「total」を、まず0にしておく
for item in sales:salesの中身を1件ずつ取り出して、「item」という名前で受け取る
total = total + item今のtotalにitemを足して、それを新しいtotalにする
print(total)最後にtotalを表示する

total は、0 → 100 → 300 → 600 と育っていきます。ExcelでSUMの途中経過を、1行ずつ足していくイメージです。

③ 字下げを1か所ずらす。 最後の print(total) を、字下げしたらどうなるでしょう。繰り返しの中に入るので、毎回表示されます。

字下げの違いを見てみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

字下げがあるかないかで、「繰り返しの中」か「繰り返しが終わったあと」かが決まります。

STEP 5

自分で書く

お題① "りんご" "みかん" "ぶどう" を、1つずつ表示してください。

お題①:果物を1つずつ表示コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

for fruit in fruits: と書いて、次の行に字下げ(スペース4つ)して print(fruit) と書きます。

答えの例を見る
fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
  print(fruit)

お題② 4か月分の売上の合計を、繰り返しを使って表示してください。

お題②:4か月分の合計コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

さきほどの合計のコードとそっくりです。for item in sales: の中で、total = total + item とします。

答えの例を見る
sales = [120, 340, 560, 780]
total = 0
for item in sales:
  total = total + item
print(total)
STEP 6

仕事ならどう使う?