目次
Pythonでの繰り返し処理について
今回はPythonにおける「繰り返し処理(ループ)」について解説します。
そもそも繰り返し処理とはなんなのか?
例えば、前回説明した"if文"という、「もし~が~ならば」のような処理をする場合の構文をお教えしました。
if文は条件分岐の際に使いましたが、もしこのif文が成立するまで同じ処理を繰り返したい場合などには、繰り返し処理を使うことで簡単に実現することができます。
Pythonで使うことのできる繰り返し処理のやり方は、
- while文を使うやり方
- for文を使うやり方
基本的にこの2つです。
while文の基本
この"while"文は主に繰り返す回数が未定の場合に使用します。
例えば、「特定の状態になるまで繰り返す」や、「永遠に繰り返す」などのときに"while"文を使います。
まずは、「特定の状態になるまで繰り返す」についてサンプルコードで見ていきましょう。
特定の状態になるまで繰り返す[ サンプルコード ]
number = 5
while number < 1000:
number *= 2
print(number)
簡単に解説すると、数値numberが1000以上になるまで、numberを2倍にしていき、1000以上になったらループを抜けます。
注意する点としては、if文とは違い"継続条件"を指定することです。
つまり、条件が成立している( Trueとみなされる )間だけ処理が実行されるということです。
この継続条件の判定されるタイミングはループの開始前であるため、条件によっては1度も処理が実行されないことも有り得るのです。
永遠に繰り返す [ サンプルコード ]
次に永遠に繰り返す方法を見ていきます。
方法としては簡単です。
先ほどのコードの条件となる部分が必ず"true"になるようにするだけです。
while true:
print(" 条件式をtrueを指定することで永遠に処理が繰り返されます。 ")
for文の基本
次によく使われるfor文について説明していきます。
for文は、[ リスト ]や[ ディクショナリ ]などのシーケンスをループ処理するための構文です。
プログラムではシーケンスの要素を個別に処理することが多くあるので、しっかり基本を押さえて覚えておきましょう。
まずは、リストを扱う場合のfor文からみていきます。
リストを扱う場合のfor文
for item in [1, 2, 3]:
print(item)
for文では最初に指定する変数(上記のサンプルでは"item")は好きな名前にできるのでわかりやすい名前をつけてください。
そして、"in"句の後にループさせるリストを指定します。
ここで指定したリストの要素数だけループが回され、ループ毎に変数に要素が割り当てられて、ループ内でなんらかの処理を行うことができます。
ディクショナリを扱う場合のfor文
最後にディクショナリを扱ったfor文の書き方を見ていきましょう。
ディクショナリには"キー"と"値"が存在するため、そのどちらかで繰り返すかによって、それぞれループ方法が異なります。 まずは、"キー"をループする場合を見ていきます。
ディクショナリの"キー"をループする場合
for key in {1:"Cat", 2:"Dog", 3:"Bird"}:
print(key)
このように"キー"を指定してループする場合、呼び方は"リスト"の時とおおよそ同じですね。
今までと少し違うのは次の"値"をしていしてループする時です。
ディクショナリの"値"をループする場合
for value in {1:"Cat", 2:"Dog", 3:"Bird"}.values():
print(value)
”値”をループにする場合は、上記のサンプルコードのようにディクショナリの”values”メソッドを使って”値のセット”を取得する必要があります。
また、上記の両方。つまり”キー”と”値”の両方を同時にループさせる方法もあります。
"キー"と"値"を同時にループ
for key, value in {1:"Cat", 2:"Dog", 3:"Bird"}.items():
print("{0}:{1}".format(key, value))
"キー"と"値"を同時にループする場合は、上記のサンプルコードのように2つの変数をカンマ(,)区切りで指定する必要があります。
そして、ディクショナリの"itemsメソッド"を呼び出さなければいけないので、先ほどの「"値"」を使ったループの時のように[values]とは異なり、[items]なので注意してください。
まとめ
今回はPythonで繰り返し処理をしたいときに、すぐにコピーして使えるようなサンプルコードと一緒に紹介しました。
- この処理は〇回は繰り返したいな。
- ある条件になるまで無限に繰り返したいな。
といったような処理を実装することができます。