Python

【初心者向け】Pythonのfor文の使い方を解説!実践方法まで紹介!

「Pythonのfor文の使い方がわからない」
「for文の基本的な書き方はわかったけど、実践的にはどうやって使ったら良いの?」

本記事ではこのような悩みを解決します。Pythonのfor文は実務でもかなり使う頻度の高いものなので、プログラミング初学者はぜひ理解しておきたいところです。

しかしfor文はプログラムの動きがややこしくて理解しづらい人も多いでしょう。そこで本記事ではPythonのfor文の使い方を初心者でもわかるように解説していきます。

本記事を読むことでfor文の基礎がわかり、プログラミングの勉強を一歩先へ進めることができますよ。

Pythonのfor文とは

はじめに、Pythonのfor文とは何かを説明しますね。

まずはfor文の役割や、書式、基本的な使い方を理解していきましょう。

for文の役割

for文は「同じ処理を繰り返す」ときに使われる処理です。

プログラミングをやっていると、同じ処理を何度も繰り返し実行したい場合があります。たとえば、同じ文字列を繰り返し表示したり、1から10まで順番に数字を出力したり……。

そんな場合に、同じ処理を手で何回も書くのは非効率ですし、読みやすいソースコードとは言えません。

そこで活躍するのがfor文です。for文を使うと、たった一行で同じ処理を繰り返し実行することができます。そうすれば、コード量がだいぶ減って読みやすいコードを書くことができますよね。

for文と似たものにwhile文があり、こちらも同じ処理を繰り返すときに使われます。while文と比較したとき、for文では変数の初期化もfor文の中でできるメリットがあります。

このように、for文は同じ処理を繰り返すときに活躍するものです。

for文の書式と基本的な使い方

for文の書式は以下のようになっています。

for 変数 in オブジェクト:
    条件式が真の時に実行する文1
    条件式が真の時に実行する文2
    ・・・

変数の後に「in」を入れるのを忘れないようにしましょう。

これだけだとわかりにくいので、簡単な例を挙げましょう。

num = [0,1,2]
for n in num:
     print(n)

実行結果

 0
 1
 2

上記の例では、for文を使って配列「num」に入った数字を一個ずつ出力しています。

この例ではまず、配列「num」の最初のデータである「0」が変数「n」に格納されます。そしてfor文内のprint関数によって「n」の値、すなわち「0」が出力がされます。

一度for文内の処理が終わったら、今度は「num」の次のデータである「1」が変数「n」に格納され、for文内のprint関数によって「1」が出力されます。これを繰り返し、配列「num」のデータをすべて出力し終わったらプログラムが終了します。

まとめると、for文の処理の流れは以下のようになります。

  1. 変数「n」に配列「num」の1番目の要素「0」が格納される
  2. print関数によって「num」の値「0」が出力される
  3. 1から2を繰り返し、「2」までを出力する
  4. 配列「num」のデータからもう取り出せなくなったので、処理が終了する

for文の基本的な使い方はこのようになります。

for文の実践方法

ここからはfor文の実践的な使い方を見ていきます。

具体的には、次のことを理解していきましょう。

  • range関数との組み合わせ
  • enumerate関数との組み合わせ
  • continue文
  • break文
  • else文

ここまで理解できると、実務でもfor文をスムーズに使えるようになりますよ。

range関数との組み合わせ

さきほどは配列からデータを取り出し、for文によって1つずつ出力させていきました。しかし、数値を順番に出力するだけなら、もっと良い方法があります。

それは、for文にrange関数を組み合わせることです。range関数は引数に指定した数までの連続した数値を生成することができる関数です。

range関数は単体では役に立ちづらい関数ですが、for文と組み合わせることによって力を発揮します。

例を見ていきましょう。

for num in range(3):
    print(num)

■実行結果

 0
 1
 2

これはさっきと同じく「0」「1」「2」と連続で出力させるプログラムです。

「for 変数 in range(n):」と記述すると、変数に「0からn-1までの数値」を順番に格納することができます。

このようにrange関数を使うことで、連続した数値の出力を楽に行うことができるのです。また、以下のようにrange関数に複数の引数を指定することで、できることの幅が広がります。

for num in range(5, 10):
    print(num)

■実行結果

 5
 6
 7
 8
 9

「range(m, n)」と引数を2つ指定してrange関数を使用すれば、変数に「mからn-1までの数値」を順番に格納することができます。

さらには引数を3つ指定することも可能です。

for num in range(0, 10, 2):
    print(num)

■実行結果

 0
 2
 4
 6
 8

「range(m, n, d)」と引数を3つ指定してrange関数を使用すれば、「mからn-1までの数値を+dしながら」順番に格納することができます。

他にも次のような使い方もできます。

for num in range(10, 0, -1):
    print(num)

実行結果

 10
  9
  8
  7
  6
  5
  4
  3
  2
  1

第3引数に負の数を指定することで、数値を逆順に格納することもできました。

このように、for文にrange関数を組み合わせることで、数値を順番に出力させることができます。実務でもよく使うので覚えておきましょう。

enumerate関数との組み合わせ

これまでは、for文を使って配列の要素を取り出す方法を説明しました。

それでは「要素が配列の何番目に入っているか」を取り出すにはどうしたらよいでしょうか?

こんなときにはenumerate関数を使います。enumerate関数は、要素が配列の何番目に入っているかを返します。

num = [‘太郎’,’花子’,’二郎’]
 
for index in enumerate(num):
    print(index)

■実行結果

 (0, ‘太郎’)
 (1, ‘花子’)
 (2, ‘二郎’)

「for 変数 in enumerate(配列)」と記述すると、「(配列のインデックス番号, 配列要素)」が変数に格納されます。

使われる頻度はそこまで高くはないですが、enumerate関数も覚えておくと便利ですよ。

break文

forループ内で「条件によって途中で処理を終了させる」場合はbreak文を使います。

break文は以下のように使います。

for num in range(10):
    if num == 2:
        break
    print(num)

■実行結果

 0
 1

上記の例では、break文を使って変数「num」の値が「2」のときに処理を中断させています。だから「1」までしか出力されていないのです。

このように、何か例外的な処理をしたくてforループを途中で止めたい場合にはbreak文が役に立ちます。

break文は、while文でも同じように使えるので、ぜひ覚えておきましょう。

continue文

forループ内で「条件によって処理をスキップさせる」場合はcontinue文を使います。

continue文は以下のように使います。

for num in range(10):
    if num == 2:
        continue( “Hello world!” )
    print(num)

■実行結果

 0
 1
 3
 4
 5
 6
 7
 8
 9

上記の例では、continue文を使って変数「num」の値が「2」のときに処理をスキップさせています。その結果、「2」は出力されていないことを確認してください。

range関数は「特定の数値を除外して出力する」ことができません。しかし、continue文を使えば特定の数値を飛ばすことが可能になります。

このように、ある場合のみ処理をスキップさせたい場合にcontinue文が役立ちます。

break文はその時点で「処理を中断させる」ため、break文以降の処理は行われないのに対し、continue文は「処理をスキップする」だけなので、その後の処理は行われることに注意しましょう。

else文

forループの処理が終了した後に何か処理を行いたい場合には、else文が役立ちます。

else文は以下のように使います。

for num in range(3):
    print(num)
else:
    print(“数値の出力が完了しました”)

■実行結果

 0
 1
 2
 数値の出力が完了しました

上記の例ではfor文内で数値を出力した後、else文で「数値の出力が完了しました」と出力させています。このようにelse文はループ後に何か処理を行いたい場合に便利です。

break文で処理を中断させた場合はelse文の処理は行われないことに注意してください。次の例を見てみましょう。

for num in range(3):
    if num == 2:
break
    print(num)
else:
    print(“数値の出力が完了しました”)

■実行結果

 0
 1

上記のようにbreak文でfor文内の処理を中断させたら、else文の処理は行われないことになります。

まとめ

本記事ではPythonのfor文について解説しました。for文の基本的な使い方をわかって頂けたでしょうか?

for文は同じ処理を繰り返すときに多く使われます。特にrange関数と組み合わせることによって、数値を昇順・降順に出力させることが可能です。

ぜひfor文を実際に使ってみて、色々試してみてくださいね。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。