for文について学んでいきましょう。
for文の使い所
for文は、連続したデータから、1つ1つのデータを順番に取り出す時に使われます。
といってもイメージがわきづらいと思いますので、実際のコードで見ていきましょう。
コード1 animal = ['dog', 'cat', 'pig']
2 for a in animal:
3 print(a)
アウトプットdog
cat
pig
コードの解説(1) 1行目で、dog、cat、pigという3つのデータが入っているリストを作成し、変数animalに代入しました。
(2) 2行目でfor文を使い、animalに入っているデータを順番に取り出していきます。そして、取り出したデータが、変数aに代入されます。
この例では、まずdogが取り出され、それがaに代入されます。
(3) 3行目で、 a(つまりdog)が出力されます。
(4) 再び2行目のfor文に戻ります。次は、catが取り出され、変数aに代入されます。
(5) 3行目のコードが実行されます。つまり、変数a(cat)が出力されます。
for文の繰り返しで使えるデータ
for文の繰り返しでは、文字列、リスト、タプルといったデータ型を使うことができます。
文字列型が一番イメージがわきづらいですので、実際にコードで確認してみましょう。
コードstr = 'string'
for a in str:
print(a)
アウトプットt
r
i
n
g
文字列の場合、一つ一つの文字が順番に取り出されていることが分かります。
else文を使うこともできる
for文の中でelseを使うこともできます。
具体的なコードで見ていきましょう。
コード1 list = [1, 2, 3]
2 for a in list:
3 if a:
4 print(a)
5 else:
6 print('end')
アウトプット1
2
3
end
コードの解説(1) まずは1行目です。listという変数にに1、2、3の三つのデータを代入します。
(2) 2行目でfor文でlistの中身が取り出され、それが変数aに代入されていきます。まずは、aに1が代入されます。
(3) 3行目はif文です。ここでは、if aというコード、つまり変数aに空ではないデータが入っている場合にTrueを返す条件にしています。
aには1が入っていますので、Trueとなり、3行目のコードが実行されます。
(4) 3行目で、変数aが出力されます。
(5) 1~3までの3つのデータが出力された後は、変数aには何もデータが入りません。結果として、3行目のif文の結果がFalseになることから、else文が呼び出されます。
(6) else文が実行されますので、6行目が実行されて「end」という文字列が出力されます。
for文は入れ子にすることもできる
また、for文は入れ子にすることも可能です。
これも具体的なコードで見ていきましょう。
コード1 list1 = [1, 2, 3]
2 list2 = ['a', 'b', 'c']
3 for number in list1:
4 print(number)
5 for character in list2:
6 print(character)
アウトプット1
a
b
c
2
a
b
c
3
a
b
c
コードの解説(1) まず、1行目と2行目で整数と文字列が入ったリストを作っています。(それぞれ1~3とa~cの3つのデータが入っています。)
(2) 3行目、for文を使って整数を順番に取り出していきます。まずは1が変数numberに代入されます。
(3) 4行目で、変数number(つまり1)が出力されます。
(4) 5行目が実行され、変数characterにaが代入されます。
(5) 6行目で変数character(つまりa)が出力されます。
(6) 次の行はありませんので、6行目に戻ってfor文が呼ばれ、characterにbが代入されます。
(7) 同じことが繰り返され、abcが出力されると、2つ目のfor文を抜けます。抜けたあとに新たな行はありませんので、3行目に戻ってfor文が呼ばれ、numberに2が代入されます。
(8) あとはこの繰り返しです。結果として、1abc2abc3abcと出力されます。
上から順番にコードを読んでいくことで、どういった順番でコードが実行されていくかを把握することができるようになると思います。
for文のまとめ
(1) for文には、リストや辞書だけではなく、文字列も使うことができる
(2) for文を入れ子にしたり、for文の中でif文を使うこともできる
for文を学んだ後は
for文と似た使われ方をするwhile文について学んていきましょう。