Python

for文をpythonで使うには?色々な使い方も紹介

Pythonでfor文を書く方法をご存知でしょうか。

For文はどのプログラム言語を勉強するうえでも必ず出てくる関数です。
初心者がプログラムを勉強する中でつまずくポイントの1つでもあります。

本日はpython学習を始めたばかりの方向けにPythonでfor文を使用する方法と、for文の利用方法について紹介します。

実行環境

  • Windows10 64bit
  • Visual Studio Code
  • Python3.7.4(Anaconda 2019.10)

PythonでFor文を書く方法

PythonでFor文を書くには次のように書きます。

For 変数 in オブジェクト:
実行する処理

JavaやC言語などと違ってPythonのFor文ではカウンターが必要ありません。
オブジェクトに指定した文字列や数値が変数に代入されて処理を実行していきます。

For文のいろいろな使い方

繰り返し回数を指定したい場合はrange関数 を使用

PythonでFor文の繰り返し回数を指定したい場合は、オブジェクトにRange関数を使用します。

for i in range(5):
    print(i)

range関数でスタートする数値を指定しない場合は、0から始まり指定した数値-1まで実行します。
例題では5を指定したので、0~4まで出力しています。

オブジェクトに文字を入れると一文字ずつ取り出せる

オブジェクトに文字列を指定すると、1文字ずつ取り出して処理をすることができます。

for i in 'Hello':
    print(i)

例では「Hello」という文字をオブジェクトに指定しました。
これを実行すると、5回繰り返し処理を実行て 一文字ずつ取り出します。

For文を途中で抜ける場合はbreakを使う

特定の条件に合致したらfor文を抜けたいという事があります。
その場合はbreakを使用します。

for i in 'Hello':
if i == 'o':
break
else:
print(i)

for文で一文字ずつ取り出し、「o」を取り出したら途中で処理を終了します。
それ以外は取り出した文字を出力します。

以降の処理をスキップしたい場合はcontinue

特定処理の時だけfor文の処理を実行したくないという時にはcontinueを使います。

for i in 'Hello':
if i == 'l':
continue
print(i)

for文で取得した文字が「l」の場合は以降の処理をスキップして、それ以外は取得した文字を出力しています。

内包表記を使ったFor文の書き方

pythonには内包表記という表記方法があります。
これはリストやディクショナリーをシンプルに表記する方法です。

result = [i for i in range(10) if i%2 == 0]
print(result)

内包表記については別で詳しく書こうと思うので、ここでは詳しく書きませんが、
10回繰り返し処理で 0~9を取り出し、2で割り切れる数値をリストで出力しています。

繰り返し回数を出力したい場合はenumerate()関数

繰り返し回数と一緒にオブジェクトの内容を出力する場合は、enumerate関数を使います。

listA = ['A','B','C','D','E']
for a, b in enumerate(listA):
print(a,b)

まず「listA」というリストを定義して、for文で繰り返し回数と一緒に出力をしています。
変数aには繰り返し回数、変数bにはlistAから取り出した値を入れて出力しています。

第二引数にスタートの数値を指定ができます。以下のように第二引数に10を指定すると、連番のスタートが10になります。

listA = ['A','B','C','D','E']
for a, b in enumerate(listA,10):
print(a,b)

複数のオブジェクトから一度に値を取得するZip

複数のオブジェクトの値を同時に取り出す場合はzip関数を使用します。

listA = [1,2,3,4,5]
listB = ['A','B','C','D','E']
for a, b in zip(listA,listB):
print(a,b)

for文のオブジェクトにzip関数を使います。
今回はlistAとlistBという2つのリストを用意し、zip関数を使って同時に取り出します。
変数aはlistA、変数bにはlistBの内容を入れて出力しています。

最後に

本日はpythonでfor文を使う方法を紹介しました。

pythonのfor文は色々な使い方があります。
使い方が分からなくなったらぜひ確認しに来てください。

Bill Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳)
コーリー・アルソフ (著), 清水川 貴之 監訳 (その他), 清水川 貴之 (翻訳), 新木 雅也 (翻訳)