Pythonの制御構造-for文
記事の内容
この記事では、Pythonの繰り返し処理の1つであるfor文の使い方について説明します。繰り返し処理は、ループ処理ともいいます。
***わからない用語があるときは索引ページへ***
1.for文の記述ルール
for文は、リストやタプルなどの、イテラブルなオブジェクトを使った繰り返し処理です。イテラブルなオブジェクトの要素を、順番に1つ1つ取り出して繰り返し処理をしていきます。構文ルールは、以下のようになります。
for <変数> in <イテラブルなオブジェクト>:
<プログラムブロック>
最初のfor部の最後に、":"(コロン)を記述する必要があります。
2.for文のサンプルプログラム
サンプルプログラム"for_ex1.py"でfor文の書き方や動き方を見てみましょう。
サンプルプログラムのsum += iは、sum = sum + iと同じ意味です。"+="は、自分自身に後ろのデータを足す演算子です。
## for_ex1.py
##1からnまでの整数の和を繰り返し出力する
##とりあえずnは1から5までにしてみる
list1 = [1, 2, 3, 4, 5]
sum1 = 0
for i in list1:
sum1 += i
print("1 から", i, "までの整数の和:", sum1)
print("\n")
print("終了")
出力結果
1 から 1 までの整数の和: 1
1 から 2 までの整数の和: 3
1 から 3 までの整数の和: 6
1 から 4 までの整数の和: 10
1 から 5 までの整数の和: 15
終了
3.for文の動きの解説
少し詳しく動きを説明します。
for i in list1:
list1の要素を、要素の順番通りにiに代入ながらfor文のブロックの中身を実行していきます。前の記事でも説明したように、Pythonのブロックはインデント(字下げ)で表現しますので、forの後ろの、右に字下げされた文
sum1 += i
print("1 から", i, "までの整数の和:", sum1)
が繰り返し実行されます。
"for_ex1.py"では、初期値として
sum1 = 0
list1 = [1, 2, 3, 4, 5]
がセットされていますので、まずはfor文のiに1が代入され、続くブロックで
sum += i
でsum1が1に、
print("1 から", i, "までの整数の和:", sum1)
で
1 から 1 までの整数の和: 1
が出力されます。
続いて、繰り返しのforに戻ってiに次の要素である2が代入されます。最初と同様にブロックの中身が処理されます。
sum1 += i
で、sum1は1なので、これに2を足して、sum1は3になり、
print("1 から", i, "までの整数の和:", sum1)
で
1 から 2 までの整数の和: 3
が出力されます。
これを、すべてのlist1の要素("for_ex1.py"では、5まで)に対して順番に繰り返します。
4.多重ループ
ループ処理の中でループ処理をすることを多重ループといいます。Pythonに限らずですが、ループ処理はいくらでも多重することができます。サンプルプログラム"for_ex2.py"で2重ループの使い方の例をみてみましょう。
##for_ex2.py
##多重ループの例
##九九の計算結果を表示する
rec1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rec2 = rec1.copy()
for x in rec1:
print(x,"の段")
for y in rec2:
seki = x * y
print(x, "*", y, "=", x * y)
print("\n")
インデントを使った繰り返し処理のプログラムブロックの書き方を確認しましょう。動きは単ループのときと同じです。出力結果と見比べて動きも確認しましょう。出力結果は以下のようになります。
1 の段
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 の段
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
:
####途中省略#####
:
8 * 8 = 64
8 * 9 = 72
9 の段
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
この記事が気に入ったらサポートをしてみませんか?