Pythonプログラミング入門【ループ処理編】
本記事はPythonの基本を学ぶシリーズ続編です。
第一回はこちらの記事になりますので、初めからしっかり学びたい方は
順番に記事をご覧ください。↓
この記事では引き続き
悩むペン銀
Pythonに何ができるのか具体的に知りたい
Pythonの基本構文を学び、プログラミングの大筋を理解したい
Pythonを実際にコーディングして学習したい
といった内容の疑問・要望に答えていきます。
自分の足りない知識を理解し、調べ、自分自身で学びを深められる様になる事が
エンジニアとして1ステップ目のゴールであり
本シリーズではあなたがこのゴールを達成すること
即ち”独り立ち” できるまで、サポートする構成となっています。
それでは取り組んでいきましょう。
目次
ループ処理
コンピュータは同じ動作を繰り返すことがとても得意です。
Pythonではこれをコーディングで実現するため以下2つの構文が用意されています。
これらのキーワードはPythonでのループ処理において頻繁に利用されます。
一つ一つ基本を述べて行くので確実に勉強していきましょう!
whileループについて
このcommandはある条件がTrueである期間決められた動作を繰り返す
ものです。構文はwhile 条件 :(コロン) と定義します。
またif文の時と同じように、インデント(空白)を入れることでループする領域を決定します。
こちらもコードを実際に見た方が分かりやすいため、
実際にプログラムに使用する際の実例を示します。
>>> count = 1 >>> while count < 6: ... print(count) ... count += 1 ... else: ... print("Loop is over") ... 1 2 3 4 5 "Loop is over"
感の良い方はすでに何が起きているのか分かるかも知れませんね。
大まかな処理の流れを説明すると
この例ではまず変数countに1を指定して用意し、プログラムがループされる毎にcountをインクリメント(1を足し算)しています。
また、ここでのwhileの条件ではcountが6より小さい場合がTrueとなり、
ループが繰り返されcountが6以上の値となると条件がFalseに変わります。
条件がFalseに変わった時点で次のループは実行されず、
if文同様ループのブロックから抜け出し、
次に続くelseのブロックであるprint()関数が実行されています。
この書き方がwhile文と呼ばれる
pythonでのループ処理を実現する1つの文法です。
forループについて
pythonでもっとも書く機会が多い構文は
for 条件 :(コロン)でしょう。
基本的にはif文やwhile文と同じような書き方をします。
このfor 文はより柔軟な動作を実現することができ、
例えば、前回の記事で学んだリストや辞書、タプルなどある一連のデータを操作することが可能です。
それではコードを見て実例を確認していきましょう。
>>> fruits = ["apple", "peach", "meion"] >>> for fruit in fruits: ... print(fruit) ... "apple" "peach" "meion"
このようにリストfruitsに含まれる要素が左から変数fruitに代入され
その要素が尽きるまで、ブロック内のprint()関数が実行されています。
さらに、ここが面白いのですが
これまで学んだif文を使って条件分岐させることも実現できます。
>>> fruits = ["apple", "peach", "meion", "banana"] >>> for fruit in fruits: ... if fruit == "meion": ... print("My favorite fruit is {}".format(fruit)) ... "My favorite fruit is meion"
このようにリストの要素の中から
条件に該当する要素を抜き出すことが可能です。
このループ処理には様々な応用方法があり
アイディア次第で多種多様の処理を行うことができるでしょう。
ループ処理を抜ける方法
前節では
while文とfor文を利用したループ処理について基本を学びました。
またループ処理の間にif文を挿入する事で、繰り返しの動作の中で
ある条件の時動作を変更する事ができると確認しましたね。
しかし、このループ処理に入った時
どうすれば、途中で意図的にループから抜け出す事ができるのでしょう?
この解決策として、Pythonにはbreakと言う予約語が存在します。
breakはwhile文やfor文のブロック内に挿入することによって
ループ処理を抜ける事を実現します。
以下のコードを打ち込んで確認して見ましょう。
>>> count = 1 >>> while count < 7: ... print(count) ... if count == 3: ... break ... count+=1 ... 1 2
プログラムは上から下へ1行ずつ実行されますが
2行目にwhile文を宣言する事でcountの値が7になるまで
即ち7回ブロック内を繰り返し実行されます。
6行目にcount+=1 (count=count+1と同意)とある様に
countの数値がインクリメント(1を足し算)されていき
その値が3と等しくなった場合、breakが実行され
本来countの値が6まであるループ処理を抜ける事ができています。
ループ中に指定の動作をスキップする
そしてもう一つ便利な予約語がcontinueです。
ループ中、ある条件の場合だけ動作をスキップしたい場面に出くわすでしょう。
そんな時に利用します。
以下コードを確認してみましょう。
>>> count = 0 >>> while count < 7: ... count+=1 ... if count == 3: ... continue ... print(count) ... 1 2 4 5 6
このコードでは
変数countの値が6になるまでインクリメントされていきます。
しかしcontinueがループ処理ブロックに挿入される事で
countの値が3の時のみprint()関数が実行されず、
次のループ処理が行われます。
3の数字がprintされていない事が分かりますね。
これらの予約語break及びcontinueはfor文内でも同様の動作を実現します。
さっと確認してみましょう。
>>> fruits = ["apple", "peach", "cherry"] >>> for fruit in fruits: ... if fruit == "peach": ... break ... print(fruit) ... "apple"
>>> fruits = ["apple", "peach", "cherry"] >>> for fruit in fruits: ... if fruit == "peach": ... continue ... print(fruit) ... "apple" "cherry"
この様にfor文でも問題なく実行されます。
ところで
これら2つの予約語の違いが明確に理解できたでしょうか?
breakではある条件がTrueの場合
そこでループ処理が強制終了され、次の処理に入り
continueではある条件がTrueの場合
そのブロックの処理がスキップされ、ループ処理は続行されます。
ループ処理の終了と続行の違いを
明確に頭の中に入れておきましょう。
まとめ
いかがだったでしょうか?
今回はpythonのプログラミングでは頻繁に出現するであろうループ処理について学びました。
基本を抑える事ができれば、
もっと面白いプロジェクトに着手できる様になります。
少しずつ前進していきましょう。
続編はこちら↓
人気記事 CS学位取得者がガチでプログラミングスクールを調査してみた件【おすすめのスクール】