プログラミング言語「Python」は広く使われるようになり、高い人気を誇る。この特集では、Pythonで自動化アプリを自作できるようになるための最低限の知識を紹介する。
分岐と比較演算子(処理機能)
ここでは、「分岐」と「比較演算子」を解説します。ほとんどの場合、両者はセットで使います。
コードの処理の流れは、コードを書いた順に「上から下へ」と実行されるのが基本です。しかし、分岐の処理機能を使うと、処理を途中で分けることができ、より複雑な処理のプログラムを作れるようになります。
「分岐」とは、コードに記述した「条件」が成立する/成立しないによって、その後の処理を異なるように実行する仕組みです(図8)。
分岐のコードは、「if」文で記述します。ここで言う「文」とは、「複数のコードをワンセットにして、1つの処理機能を作る仕組み」といった程度の把握で問題ありません。if文の基本的な書式は以下です。
前述の「条件」は、書式の「条件式」の部分に式として指定します。「if」の後ろに半角スペースを挟み、条件式を指定します(条件式の書き方はこのあとすぐ解説します)。条件式の後ろに「:」を記述します。これは書き忘れがちなので気を付けましょう。
「成立時の処理」には、条件式が成立する場合に実行したい処理を記述します。
「成立時の処理」の下に、「else:」を書きます。必ず、「if 条件式:」と同じインデント(字下げ)の位置にします。「else」の後ろの「:」も忘れないよう注意してください。その下の行に、必ず一段インデントしてから、条件式が不成立の場合に実行したい処理を記述します。
これで、条件式の成立/不成立に応じて、それぞれ指定した処理が実行されます。
このif文は、必ず書式で決められたとおりにインデントしないと、成立/不成立に関係なく実行されるなど、意図通りに分岐できなくなるので注意しましょう。
さて、あとまわしにしていた条件式の書き方を解説します。
条件式は、「比較演算子」を使って記述します。比較演算子とは、2つの値を比較して、成立/不成立を判定する演算子です。主な比較演算子は表2のとおりです。
プログラミング初心者にとって最も注意が必要なのが、「等しい」の比較演算子が「==」である点です。「=」(イコール)を2つ並べて記述します。前述のとおり、算数や数学の世界では、「等しい」は「=」ですが、プログラミングの世界では、「=」は「等しい」ではなく、代入の演算子なのです。
比較演算子の書式は次のとおりです。
比較演算子の左辺と右辺を比較し、成立するなら「True」、不成立なら「False」を返します。このTrueやFalseは、「ブール値」という種類の特殊な値です。専門用語で、Trueは「真」、Falseは「偽」という意味ですが、実用上はTrueは「YES」、Falseは「NO」と大まかに捉えれば問題ありません。
比較演算子を使った条件式の例を示します。数値が代入された変数numがあり、その変数に代入されている値が100以上かどうかを判定したいとします。その条件式は以下です。
「以上」の比較演算子である「>=」を使い、左辺には変数num、右辺には100を記述します。これで、もし変数numの値が200なら、成立するのでTrueを返します。変数numの値が20なら、不成立なのでFalseを返します。
この条件式「num >= 100」を使って、if文を書いてみましょう。変数numには、200を代入しておくとします。条件式が成立するなら文字列「合格」、不成立なら文字列「不合格」を出力するとします。そのコードがリスト6です。実行結果が図9です。
リスト6の(1)で、変数numに200を代入しています。この代入により、変数numは100以上となるので、(2)の条件式「num >= 100」は成立し、if以下の「print('合格')」が実行されます。
もし、(1)で変数numに代入する値を100未満の数値に変更したならば、条件式は不成立となり、else以下の「print('不合格')」が実行されて、「不合格」と出力されます。
if文はほかにも、「else:」以下がない形式でも使えます。その場合、条件が不成立なら何の処理も実行しません。また、「elif:」を追加することで、複数の条件式で分岐できます。しかも、「And」や「Or」といった「論理演算子」を使うと、複数の条件式を組み合わせて1つの条件式を記述することもでき、さまざまなパターンの分岐が可能になります。