こんにちは。ナミレリです。今回はPythonでループ処理をするときに使うfor文を紹介します。
- M2 MacBook Air 13.6 インチ
- macOS Ventura 13.0
- pyenv 2.3.4
- Python 3.10.6
目次
Pythonのfor文とは
Pythonでループ処理をするときにはfor文を使います。ループ処理とはイテラブルオブジェクト(リストやタプル、文字列)に対する繰り返しの処理のことです。
例えば、イテラブルオブジェクトとして下記のリストがあるとします。
numbers = [0, 1, 2, 3, 4, 5]
# 0から5までの6つの要素からなるリスト
このリストを順番に表示させるにはfor文を使って下記のようにします。
>>> numbers = [0, 1, 2, 3, 4, 5]
>>> for num in numbers:
... print(n)
...
print文の出力結果はこのようになります。
0
1
2
3
4
5
>>>
この時、イテラブルオブジェクトの前にinを置きます。この場合のnumは繰り返し変数(ループ変数)と呼ばれ、最初のループではnumは0、2回目のループではnumは1、3回目のループではnumは2が代入されます。
Pythonのfor文の構文
Pythonのfor文は下に記載した構文となります。forの後に繰り返し変数、その後にinでイテラブルオブジェクトで:(コロン)です。そして改行し、2行目にはTabでインデントして処理を書きます。
forスペース繰り返し変数スペースinスペースイテラブルオブジェクト:
Tab繰り返し変数を使用する処理
for文を抜ける:break
for文を抜けるにはbreakを使います。breakはfor文に限らずブロックを抜ける時に使います。
簡単な例をやってみます。先程のnumbers = [0, 1, 2, 3, 4, 5]で3になったらfor文を抜けて終了するとします。
>>> numbers = [0, 1, 2, 3, 4, 5]
>>> for num in numbers:
... if num == 3:
... break
... print(num)
...
0
1
2 #2を表示して終了している
Pythonでプロのコードを書くための考え方やテクニックを学びたい方におすすめ書籍です。
「VTuberサプーが教える! Python 初心者のコード/プロのコード」
for文で処理をスキップする:continue
continue文はループのブロックを実行せずにスキップしたいときに使います。continueもfor文に限らずwhileなどのループ処理で使います。
例として、先程のnumbers = [0, 1, 2, 3, 4, 5]で3になったらスキップしforの最初に行きます。
>>> numbers = [0, 1, 2, 3, 4, 5]
>>> for num in numbers:
... if num == 3:
... continue
... print(num)
...
0
1
2
4 #3がスキップされている
5
for文が終わったら処理を実行する:else
Pythonではfor文やwhile文でelseを使うことができます。for文が終わったら実行したい処理をelseで書きます。1点注意することとして、breakで抜けた時はelseブロックは実行されない点です。逆に言うとbreakで抜けなかったら必ずelseブロックは実行されます。
for文のelseブロック:breakなし
例として、for文が終わったらprint文を実行してみます。この例ではbreakは使用していません。
>>> numbers = [0, 1, 2, 3, 4, 5]
>>> for num in numbers:
... print(num)
... else:
... print("done")
...
0
1
2
3
4
5
done #elseブロックの実行結果
for文のelseブロック:breakあり:breakで抜ける
今度はbreakで抜けてみます。elseブロックは実行されません。
>>> numbers = [0, 1, 2, 3, 4, 5]
>>> for num in numbers:
... if num == 3:
... break
... print(num)
... else:
... print("done")
...
0
1
2 #この後にelseブロックが実行されない
for文のelseブロック:breakあり:breakで抜けない
今度はbreakはありますが抜けない場合です。抜けていないのでelseブロックは実行されます。
>>> numbers = [0, 1, 2, 3, 4, 5]
>>> for num in numbers:
... if num == 10:
... break
... print(num)
... else:
... print("done")
...
0
1
2
3
4
5
done #elseブロックの実行結果
最後に
最後まで読んでいただきありがとうございます。今回の「【Python】for文でのループ処理の基本」はいかがでしたでしょうか。for文を用いたループ処理もif文と同じぐらい使用頻度の高い制御文なのでぜひマスターしてください。Pythonはプログラム言語としてシンプルに作られていてとても覚えやすい言語です。業務で本格的に使うこともできす。データサイエンスや人工知能などのワクワクする分野ではほとんどPythonが使われているようです。MacでPythonの開発環境を整えて、その環境でPythonを学び勉強することはとても楽しいです。この記事が少しでもお役に立つと幸いです。
MacやLinux、Pythonなど技術系のkindle本も豊富にあります。詳しくはこちらから。
Amazonの電子書籍読み放題サービス「Kindle Unlimited」でプライム会員を対象に、最初の3か月間を無料体験できるキャンペーンを実施中。マンガ、小説、ビジネス書、雑誌など500万冊から、好きな本を何冊でも読めるキャンペーンです。
初めてkindle unlimited 読み放題をご利用の方は30日間の無料で体験できます。
期間終了後は月額980円で、いつでもキャンセルできます。
200万冊以上が読み放題。お好きな端末で利用可能です。