2023.12.04
Pythonのfor文を使いこなそう!range関数やbreak文など
Pythonを勉強していると、for文というソースコードが出てきます。使ってみたいと思うものの、ハードルが高く感じてしまい、なかなか手が出せないという人も多いはずです。
そうした問題を解決すべく、本記事ではfor文の使い方や例文などを詳しく解説します。現在、Pythonについて勉強されている人やこれからfor文に取り掛かろうとしている人は、ぜひ参考にしてください。
この記事でわかること
- Pythonにおけるfor文の書き方
- for文でできること
- for文の使い方
- for文の例文
目次
Python for文の書き方
Pythonのfor文とは、ひとつの処理を繰り返し行ったり、辞書やリスト、タプルといったオブジェクトから順番にデータを取り出して処理するための制御構文です。
プログラミングにおいて任意の処理を繰り返し行いたい場合、そのまま書いてしまうと長々としたコードになってしまいます。その際、for文を用いることで、短いコードで繰り返し処理を行えます。
たとえば、1〜100までの数字を順番に出力したり、配列の要素を順番に抽出したりすることが可能です。なお、書き方は以下のとおりです。
for $変数$ in $イテラブルオブジェクト$: 実行する処理のコード① 実行する処理のコード② ︙ |
イテラブルオブジェクトとは、繰り返し処理できるオブジェクトです。また「変数」や「実行する処理」の部分に任意のコードを書くことで、さまざまな処理を行えます。
注意点としては「実行する処理のコード」は必ずインデントを行って記載することです。変数のあとに「in」を書くことと、オブジェクトのあとに「:」を書くことも覚えておいてください。
Python for文の使い方
この章では、for文の使い方として具体例を6つ紹介します。
配列
はじめに、配列の中に含まれる要素を繰り返し処理したい場合のソースコードを紹介します。たとえば「names」という配列を処理すると仮定します。
names=[‘たんぽぽ’,’さくら’,’ひまわり’] |
それぞれの末尾に「組」という文字をつけてprintで出力したいとき、for文を使わずに出力すると以下のようになります。
names=[‘たんぽぽ’,’さくら’,’ひまわり’] print(n[0]+’組’) print(n[1]+’組’) print(n[2]+’組’) |
これでも求めている実行結果にはなりますが、ソースコードの行数が多くなってしまうでしょう。そこで、以下のようにfor文を用います。
names=[‘たんぽぽ’,’さくら’,’ひまわり’] for n in names: print(n +’組’) |
こちらのソースコードでも、先ほど書いたfor文を使わないソースコードと同じ実行結果になります。なお今回の例では、行数は1行しか減らせませんでした。しかし、names内の要素が増えるほど、for文を使うメリットは大きくなります。
range関数
range関数は、同じ処理を複数回繰り返すときに使用するソースコードです。基本的には以下に当てはめて使用します。
for 変数 in range(処理を繰り返す回数): 実行する処理のコード① 実行する処理のコード② ︙ |
たとえば「チューリップ」という文字を10回出力するとします。
for i in range(10): print(‘チューリップ’) |
補足として、この変数に用いた「i」は0から始まる連番を表します。またrange関数では、以下のソースコードを用いることで処理を行う範囲も指定できます。
for 変数 in range(処理の開始値,処理の終了値): |
たとえば、0〜10の範囲の中で5〜9だけを出力するとします。
for i in range(5,10): print(i) |
このように記述することで、5、6、7、8、9が出力されます。注意点としては、処理の終了値に指定した数値は含まれないということです。さらに以下のソースコードを用いることで、要素内の増加数も指定できます。
for 変数 in range(処理の開始値,処理の終了値,増加数): |
たとえば、0〜100の要素の中で0から7ずつ増加した値だけを出力するとします。その場合は、以下のソースコードを入力してください。
for i in range(0,100,7): print(i) |
実行すると0、7、14、21〜91、98が出力されます。
break文
for文を用いることで、繰り返し処理が行われるようになります。しかし、処理の途中で処理を中断したいケースも出てくるでしょう。その場合はbreak文を用いてください。
以下のようにbreak文を用いて条件を指定することで、条件を満たしたら繰り返しの処理を終了します。
for num in range(30): print num if num == 15 break |
最初の2行だけを実行すると、0から30まで数字を順番に出力するということになります。そこで最後の2行を追加することで、15まで出力したタイミングで処理を中断できます。この場合、条件を指定しているのは「if num == 15」です。
なおbreak文は、数字ではなく文字でも使えます。たとえば、以下のようなリストを用意します。
list=[‘RED’,’BLUE’,’YELLOW’,’GREEN’] |
「YELLOW」が出力されたタイミングで処理を終了したい場合、以下のようなソースコードを書いてください。
for n in list: print(n) if name == ’YELLOW’ break |
最初の2行だけで実行するとRED、BLUE、YELLOW、GREENがすべて出力されます。そこで最後の2行を追加することで、RED、BLUE、YELLOWが出力されたタイミングで処理が終了します。
else文
else文は、繰り返しの処理が終わったあとに処理を実行するときに用いるソースコードです。たとえば、膨大なデータから任意のデータを取り出す場合、処理が終わったとしても正常に任意のデータを取り出せたのか不安を感じることはありませんか?その際、データを確実に取り出せたという合図が欲しいはずです。
そこでelse文を使うことで、合図を出力できます。たとえば、以下の要素をすべて出力できたか確認するとします。
places=(‘Hokkaido’,’Tohoku’,’Kanto’,’Chubu’,’Kinki’,’Shikoku’,’Kyusyu’) |
出力できたという確認のために「出力終了」という文字を出力させたい場合、以下のソースコードを記載してください。
places=(‘Hokkaido’,’Tohoku’,’Kanto’,’Chubu’,’Kinki’,’Shikoku’,’Kyusyu’) for place in places: else: print(”出力終了”) |
このソースコードを実行することでHokkaido〜Kyusyuまで出力し終えたあとに「出力終了」と出力されます。プログラミングでは基本的に上から順番に実行されるので、elseで指定した処理が最後に実行されるというわけです。
continue文
continue文は、ある処理をスキップして出力したい場合に使用します。
たとえば、以下の要素の「UMA」という文字だけ除外して出力するとします。
animals=(‘DOG’,’CAT’,’UMA’,’MONKEY’,’RABBIT’) |
continue文を用いて「UMA」を除外しつつ出力するには、以下のソースコードを書いてください。
animals=(‘DOG’,’CAT’,’UMA’,’MONKEY’,’RABBIT’) for animal in animals: if animal == ’UMA’: continue print(animal) |
これを応用することで、以下の要素の中から「Y」を含むものを出力することができます。
states=(‘Arizona’,’Colorado’,’Delaware’,’New York’,’Texas’) |
ソースコードとしては以下のとおりです。
states=(‘Arizona’,’Colorado’,’Delaware’,’New York’,’Texas’) for word in states: if ‘Y’ not in word: continue print(states) |
「if ‘Y’ not in word:」によって「Y」を含まない要素はprint処理がスキップされます。
enumerate関数
リストやタプルといったオブジェクトから、要素と同時にindexも取り出したい場合、enumerate関数を用いると便利です。ソースコードとしては以下のとおりです。
for 変数1,変数2 in enumerate(オブジェクト): 実行する処理のコード① 実行する処理のコード② ︙ |
この場合、変数1にはindex、変数2には要素が代入されます。たとえば、以下の要素をenumerate関数で処理して出力するとします。
names=(‘Tanaka’,‘Imada’,‘Saito’,‘Yoshioka’,‘Honda’) |
ソースコードとしては以下のとおりです。
names=(‘Tanaka’,‘Imada’,‘Saito’,‘Yoshioka’,‘Honda’) for i,name in enumerate(names): print(i,name) |
実行することで以下のような結果が出力されます。
0 Tanaka 1 Imada 3 Saito 4 Yoshioka 5 Honda |
indexの開始値を1にしたい場合は「for i,name in enumerate(names,1):」のように、オブジェクトのあとにコンマで区切って開始値を記入してください。
for文はプログラミングの基礎
本記事ではPythonのfor文について解説しました。基本的なソースコードの形としては以下のとおりです。
for $変数$ in $イテラブルオブジェクト$: 実行する処理のコード① 実行する処理のコード② ︙ |
このソースコードの一部を変更したり、新たなコードを追加したりすることで、さまざまな処理を行えます。たとえば、指定した回数処理を繰り返すrange関数や最後に処理を追加するelse文などです。
これらはPythonを用いて開発を行うと頻繁に利用するでしょう。Pythonエンジニアとして活躍したいのであれば、身につけておきたいスキルです。
なお、Pythonのfor文についてご不明の点がございましたら、テクノデジタルまでお問い合わせください。高いスキルを持ったスタッフがアドバイスさせていただきます。
投稿者
-
システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。
新着情報
同じカテゴリの記事
新着記事
人気の記事