HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。
制御構文とは、if文やfor文のことですが、プログラミングではどの言語においても、この2つの制御構文が超重要事項です。
そこで本記事では、制御構文の学習第2弾として、Pythonにおける制御構文をまとめます。
制御構文とは何かという説明については、以下の記事をご参照ください。
書き方を忘れてしまった方の復習としても、お役に立てていただければと思います。
Pythonの分岐
Pythonの分岐処理はif文を使って記述します。他の言語にあるswitch文は存在しません。
switch文が存在しない理由は、if文の繰返しで実現できるからと、公式ドキュメントに記述されています。
基本的な構文は以下のとおりです。
if 条件判定A: 条件Aが成立した場合の処理 elif 条件判定B: 条件Bが成立した場合の処理 else: 条件Aにも条件Bにも成立しない場合の処理
ポイントはif文内の各処理をインデントによって表す部分かと思います。
他の言語ではブロック{}によって、処理の分割を行ったりしますが、Pythonはそれをインデントで表します。
インデントを忘れると、意図した結果にならないので、注意が必要です。
次に例文です。(変数aとbには数値が入っている前提です)
if a < b: print("a より b の方が大きい") elif a > b: print("b より a の方が大きい") else: print("a と b は同一")
Pythonの繰返し
Pythonの繰返し処理には、while文とfor文があります。
while文
while文は条件式の結果がtrueに評価されている間、while文の中の処理を繰返し実行します。
基本的な構文は以下のとおりです。
while 条件式: 繰返し実行する処理
条件式がtrueになり続けないように(無限ループとならないように)、注意が必要です。
次に例文です。
i = 0 while i < 10: print(i) i += 1
他の言語にない機能として、while文にelseブロックを記述することができます。
elseブロックは、whileのループを抜けた後に実行されます。
例えば以下の例文ように、ループの中で集計した結果を最後に表示する、というような状況で使われたりします。
i = 1 num = 0 while i <= 10: num += i i += 1 else: print(num)
なお、Pythonにdo-while文はありません。
for文
Pythonのfor文は、リストなどのコレクションの要素に対して、繰返し処理を行います。
そのため、条件式などによりループ回数を制御するといったことはできません。(その場合はwhile文を使います)
基本的な構文は以下のとおりです。
for 要素 in コレクション: 各要素に対して実行する処理
コレクションには、リストや文字列、辞書、ファイルの各行などを指定することができます。
次に例文です。
for num in [1,2,3]: print(num)
また、while文と同じく、elseブロックをくっつけることができ、ループを抜けた後の処理を記述することができます。
Pythonはシンプルで読みやすさを重視している
Pythonは他の言語と比べて、簡潔に記述できたり、読みやすさを重視されていると思うのですが、これらの思想は禅としてこちらにまとめられています。
作り手の意図を理解して、プログラミングを学んでいくのも大切なことだと思います。
今回はPythonの制御構文として分岐処理と繰返し処理を紹介しました。
お役に立てば幸いです。
参考文献
以下のサイトの情報を参考にさせていただきました。
- Python公式ドキュメント内の4.その他の制御フローツール
- とほほのPython入門内の制御構文
コメント