プログラミング言語「Python」では、いろいろな処理方法が用意されています。今回紹介する「for文」も、その中の一つです。for文をマスターできれば、繰り返し処理をシンプルなコードで進められるようになるでしょう。ここでは初心者でも理解できるように、for文の基礎について解説します。
Pythonにおけるfor文の役割とは?
Pythonのfor文は制御構文の一種で、要素を順番にピックアップして処理するためのものです。主にリストやタプル、辞書、セットなどの要素を順番にそろえるために使われます。for文をマスターできれば、複数の異なる要素でも同じ処理であれば、繰り返し適用できます。活用することで、コードの作成効率をかなり改善できるでしょう。
基本的な書き方について
Pythonのfor文の基本的な書式ですが、「for 変数 in イテラブル:」がヘッダーになります。そして改行して、「○○処理」というブロックを作成していく形になります。このように、短く簡潔なコードで処理できるのがfor文の特色です。
イテラブルとは、繰り返し処理のできるオブジェクトのことを指します。また、複数のデータの格納が可能な点も特徴の一つです。たとえば[]でくくることで、リストの繰り返しの処理をオーダーできます。for文とイテラブルオブジェクトを組み合わせることで、要素を1つずつ取得して、同じ順番で処理が行えるようになります。
Pythonにおけるfor文作成の際には、イテラブルオブジェクトの直後にコロン(:)をつけるのを忘れないようにしましょう。また処理に関する記述は、半角スペースを入れて、字下げすることにも注意しましょう。これをインデントといいます。
for文の具体的な例を紹介
for文に関するコードの作成方法について、具体例で見ていきましょう。たとえば「words」という配列があって、以下のような要素が含まれていたと仮定しましょう。
「words=['Japanese','English','Chinese']」
この配列をfor文で処理する場合、このようなソースコードの記述によって処理することが可能です。
for w in words print(w)
このようなソースコードを入力した場合、printで以下のような出力処理がなされます。
JapaneseEnglishChinese
つまり、先に紹介したソースコードを入力すると、3つのコマンドが出たことになります。順を追って説明すると、まず、変数wに対して配列wordsの最初の要素であるJapaneseが代入されます。同じく次には、2番目の要素になるEnglishがprintにて出力されました。最後は、配列の中でも3番目の要素であるChineseが代入されるのです。
このように、for文はPythonの中でも配列プロジェクトに対して特に活用できるでしょう。
for文で処理する方法をケース別で解説
Pythonのfor文では、リストやタプル、辞書、セットなどの要素を特定の順番でピックアップして処理を行えます。しかしどのように処理すればいいか、具体的にイメージできないという人もいるでしょう。そこで、この章ではケース別にfor文でどのように処理すればよいか、具体的に見ていきます。実際にプログラミングするにあたっての参考にしてください。
リストの場合
リスト要素をfor文で処理したい場合の方法を見ていきます。たとえば、以下のような果物の要素をまとめたリストがあったと仮定しましょう。
fruits=['apple','orange','grape']
そして、for文によって順番にピックアップして出力するためには、以下のようなソースコードを作成しなければなりません。
for fruit in fruits: print(fruit)
このようなソースコードを入力してコマンドを出せば、以下のように果物のリストが順番通りに出力されるでしょう。
appleorangegrape
タプルの場合
Pythonのfor文はタプルも処理が可能です。「タプル」はプログラミング初心者にとっては、あまり聞きなれない名称かもしれません。しばしば、「組」と紹介されることもあります。これらは、複数の要素が決められた順番にどおりに構成されているデータのことです。具体的に言うと、とある場所の位置を示すにあたって、経度と緯度の2つのデータを組み合わせて表現するとします。このような事例をタプルといいます。
先ほど紹介したリストと同じ配列があったとします。
fruits=['apple','orange','grape']
そして先ほど紹介したfor文のソースコードを入力したと仮定しましょう。
for fruit in fruits: print(fruit)
この場合、fruitsのタプル要素をそれぞれ取り出して、変数fruitに代入するコマンドになります。そして関数のprintを使って、それぞれのfruitの要素を順番通りに処理できるでしょう。このようにfor文を活用すれば、タプルにおける要素も順番通りの処理が可能になります。
辞書の場合
for文は辞書の要素も処理できます。辞書の場合、これまでの要素とは異なり、キーと値の組み合わせで構成されています。もしfor文で順番通りに取り出したい場合には、キーと値を分けてピックアップしなければなりません。
たとえば、以下のような辞書の配列があったと仮定しましょう。
scores=['English':90,'Math':80,'History':75]
これは、各科目のスコアを表した配列です。もしfor文を使って、順番通りにピックアップするためには以下のようなソースコードを記述する必要があります。
for subject,score in sores.items(): print(f'{subject}:{score}')
もし、このソースコードでコマンドした場合、以下のようにキーと値が順番に出力されるでしょう。
English:90Math:80History:75
セットの場合
セットの要素もfor文を使用すれば、処理も可能です。セットとは要素の集合の一種で、要素同士が重複していないという特徴があります。その他にも、要素の順序については保持しないというのもセットの要素の特色の一つです。
このようなセットの特性があるので、for文でピックアップした場合、順番は保証されない点は留意してください。それでは、具体的なセットの事例でソースコードの作成方法について見ていきましょう。
colors={'red','blue','yellow'}
もし、このようなセット要素をfor文で取り出し、出力するためには以下のようなソースコードを記述しなければなりません。
for color in colors: print(color)
このソースコードを実行した場合、colorsというセットの要素が以下のように出力されるでしょう。
blueredyellow
セットは順番を保証するものではありません。よって、上のように配列の時の順番とは異なる形で出力される可能性があります。場合によっては、別の組み合わせで出力されるかもしれません。順不同で出力される点は、あらかじめ理解しておきましょう。
途中で処理をやめたい場合
for文の設定をすると、繰り返し同じように処理が進められます。しかし中には、途中でこの処理をストップしたいと思うこともあるでしょう。そのような場合、breakというコードを入力すれば、繰り返しの処理がストップします。
たとえば、以下で紹介するソースコードの場合、そのままにしていると1~30まで順番通りに出力されてしまいます。
for num in range(30) print num
しかし、20番目までの出力でよいのであれば、「print num」の下に以下のソースコードを入力します。
if num == 20 break
こうすれば、1~20までが順番通りに出力されるでしょう。
Pythonのfor文のまとめ
Pythonのfor文を活用すれば、リストだけでなくタプルや辞書などの要素を順番に取り出して、繰り返し処理が行えるようになります。複数の要素を同じように処理する場合、for文を活用すれば、1回のソースコードの記述で完了するので便利です。
for文はPythonだけでなく、ほかのいろいろなプログラミング言語でも欠かせない機能です。さまざまなプログラミング言語を効率的に使いこなすためにも、for文の基本的な記述の方法については、マスターしておいて損はないでしょう。