Python

Python初心者向け:for文でループ処理する方法の基本

スポンサーリンク

▶ データ分析を基本から学びたい場合は、以下の記事もご覧ください。

この記事はこんな方におススメです
  • Pythonを始めたばかりでfor文について学びたい方
  • まずおさえておく「for文によるループ処理」を速習したい方

はじめに

Python初心者の方向けにfor文によるループ処理を基本から解説していきます。まずは、for文の記法を確認して、いくつかのパターンを見ていくことにしましょう。まったく知識がない状態からでもループ処理ができるようになります。簡単な例からみていきましょう。

for文

まずは、for文の基本的な書き方を確認しておきましょう。

for 繰り返し変数 in シーケンス:
    ループ内で実行するブロック

構造は簡単なのですが、はじめての用語が出てきたりで戸惑うかもしれませんね。まず、シーケンスとは複数の要素を持つデータ型のことです。たとえば、リストも複数の要素を持つのでシーケンスです。

繰り返し変数は、シーケンスの要素を1つずつ代入してループ処理に使われます。その変数名は何でもよいのですが、シーケンスを単語の複数形、繰り返し変数はその単数形で表すことが多いです。また、ただの順番を表すようなときには、「i」などもよく使われます。これは言葉で説明するよりも実例を見た方がわかりやすいかもしれませんね。

1行目はforではじめて、最後に「:」(コロン)を記載します。

2行目(以降)は、ループ内で実行する処理を記述します。注意するのは、ループで実行したい処理は、for文の後にインデントして記述します。このインデントによってループで処理したい範囲を示しているのです。

注意する点はこのくらいです。一つ例を見ておきましょう。例として動物の名前が入ったリスト、animalsをシーケンスとして、順番に動物の名前を表示するループ処理をしてみましょう。

# どうぶつの名前の入ったリストの定義
animals = ['らくだ', 'ねこ', 'らいおん', 'しまうま', 'ぱんだ']

# for文により動物の名前を順に表示するループ処理
for animal in animals:
    print(animal)

for文のところでは、シーケンスは動物の名前が入ったリストであるanimals(複数形ですね)として、このリストから次々と値を取り出して代入する、繰り返し変数はanimal(単数形ですね)としています。この変数は、このように複数形のシーケンスから、ひとつずつ値を取り出すので単数形の変数に代入する、というのはわかりやすいですね。ただ、この変数名は便宜的につけたものなので、「i」としてももちろん動作します。

次にループ処理のところでは、動物の名前を表示するため、print()関数で繰り返し変数のanimalの中身を表示させています。こうしておくと、

①シーケンスから1つ目のデータを取り出して、繰り返し変数に値を代入し、print()関数で表示する。
②シーケンスから2つ目のデータを取り出して、繰り返し変数に値を代入し、print()関数で表示する。
・・・
・・・

のように処理されます。実際に先ほどのコードの実行結果をみてみましょう。

らくだ
ねこ
らいおん
しまうま
ぱんだ

リストから順番に動物の名前が取り出されて表示できていますね。

range()関数

for文によるループ処理でよく使うrange()関数についてもここで学んでおきましょう。ループ処理をするときに、決まった回数だけループ処理を実行したい、ということがあるでしょう。このようなときに活躍するのがrange()関数です。

range()関数に引数をとして数値を渡すと、その回数だけループ処理をするfor文を簡単に書くことができます。

以下はrange()関数の補足ですが、はじめは読み飛ばしていただいて構いません。今後、range()関数を使ったときに、あれ?おかしいな、と思ったら何か書いてあったな、と思い出してください。

range()関数は複数の引数を指定することができ、その引数で範囲やステップの指定ができます。これにより、0からではなく1からの連番だったり、1つとばしの数字の列などを作ることができます。
 range()関数で作製されるのは、range型オブジェクトとよばれるもので、値を保持しているわけではなく必要な時に生成します。(イテラブルなオブジェクトといいます)rangeオブジェクトからリストを取り出したいときには、list()関数を使い、list(rangeオブジェクト)とします。

for文とrange()関数でループ処理

では、range()関数を使ったfor文を実際に試してみましょう。では、10回のループ処理を書いてみましょう。せっかくなので、1回目、2回目、・・・とわかるように各ループで何回目の処理であるかを表示させることにしましょう。

for i in range(10):
    print(str(i+1),'回目の処理です')
1 回目の処理です
2 回目の処理です
3 回目の処理です
4 回目の処理です
5 回目の処理です
6 回目の処理です
7 回目の処理です
8 回目の処理です
9 回目の処理です
10 回目の処理です

簡単ですね。注意点は、10回繰り返したいのでrange()関数の引数に「10」を指定しましたが、forループで繰り返し変数に代入される値は、「0」から「9」までとなります。

そのため、このコードではprint()関数で表示するときに、繰り返し変数に1を代入しています。

スポンサーリンク

まとめ

いかがでしたか?今回はfor文によるループ処理を学びました。ここまでで学んだことを組み合わせるだけでも、いろんなことができます。是非いろいろ試してみてください。

  • for文は次の形で使う
    for 繰り返し変数 in シーケンス:
    ループ内で実行するブロック
  • シーケンスとは複数の要素を持つデータ型のこと
  • シーケンスを単語の複数形、繰り返し変数はその単数形で表すことが多い

▶ for文にbreak文やcontinue文を組み合わせた処理については以下を参考にしてください。

▶ データ分析を基本から学びたい場合は、以下の記事もご覧ください。

コメント

タイトルとURLをコピーしました