Pythonで繰り返し処理を行うには for文 を使います。
for文を理解すれば、リストの要素を順番に処理したり、同じ処理を何度も実行することができます。
この記事では、for文の基本構文から、リスト・辞書・range関数の使い方、よくあるエラー対策までを初心者向けに解説します。
この記事の対象
基本的なfor構文の使用方法
for文の基本構文
#for構文の型
for 変数 in 範囲:
#処理内容
else:
#for後の処理内容
「変数」のところに文字通り変数を指定し、「範囲」のところに変数が任意の回数繰り返す範囲を指定します。また、else構文は省略可能です。
- シーケンス にはリスト、文字列、タプルなどが使える
- 繰り返しごとに
変数
に要素が代入される
for構文を用いた使用例
#for構文を用いた使用例
for i in range(10):
i = i * 2
print(i)
上記のプログラムは0~18までの数値を2の倍数で出力します。「i」という変数が0~10までの範囲で「×2」しています。
辞書のループ
scores = {"Alice": 90, "Bob": 80}
for name, score in scores.items():
print(name, score)
.items()
でキーと値を同時に取得
処理の中断 ⇒ break構文
break構文の型
#beak構文の型
for 変数 in 範囲:
#処理内容
if 条件式:break
繰り返し処理を行っている途中で、ある条件でプログラムを中断したい場合が出てきます。その時にbreakと記述することで中断できます。
break構文を用いた使用例
#break構文を用いた使用例
for i in range(10):
print(i)
if i == 4:break #iが4になったら終了
上記では、0~4の値を出力して終了のプログラムです。変数の範囲は0~10ですが、変数が4になったらプログラムが中断する内容となっています。
処理の継続 ⇒ continue構文
continue構文の型
#continue構文の型
for 変数 in 範囲:
#処理内容1
if 条件式: continue
#処理内容2
繰り返し構文の中で、処理内容1を実行し終えると処理内容2を実行せずに飛ばして、次の繰り返し処理を始められるのが「continue構文」です。
continue構文を用いた使用例
#continue構文を用いた使用例
for i in range(10):
if i == 5 : continue
print("count=",i)
上記はiが5のとき以外は、「count=1」「count=2」…「count=9」と出力される内容となっています。このようにif構文とcontinue構文を用いることで任意の条件だけ処理を飛ばすことが可能です。
よくあるエラーと対策
エラー例 | 原因 | 対策 |
---|---|---|
TypeError: ‘int’ object is not iterable | 数字は直接ループできない | range() を使う |
IndentationError | インデントミス | 半角スペース4つで統一 |
for構文の応用
項目 | 内容 |
IteratorとGenerator | for構文には、Iterator(イテレータ)とGenerator(ジェネレータ)という側面があります。IteratorとはList型の値を1つずつ取り出す仕組みのことです。GeneratorはIteratorを作成する仕組みのことです。 |
まとめ
- for文はリスト・文字列・rangeなどで繰り返し処理が可能
- 辞書の
.items()
でキーと値を同時に取得 - break / continue でループを制御できる
- インデントやイテラブルの種類に注意