Pythonの条件式と分岐、これから始めようとする初心者向けに分かりやすく解説|Python入門(5)

Python
この記事は約4分で読めます。

はじめに

 前回のPython入門(4)では、Pythonでの文字列とinput() 関数について学びました。

 Python入門の第五弾として、Pythonの条件式と分岐について紹介します。

  この記事を読むと次の疑問について知ることができます。

 それでは、Pythonの条件式と分岐をこれから始めようとする初心者向けに分かりやすく解説していきます。

条件式と分岐

 Pythonのプログラムでは、他のプログラム言語と同様に次の3つの処理の組み合わせで実行されます。

  1. 順次処理
    上から順番に下に向かって処理が進みます。
  2. 分岐処理
    条件式により分岐して処理が進みます。
  3. 繰り返し処理(反復処理)
    条件式の条件を満たす間は同じ処理を繰り返したり、一定の回数処理を繰り返します。

 今回は、「2.分岐処理」について紹介していきます。

比較演算子

 Pythonでは、xよりもyの方が大きい(x < y)、xよりもyの方が小さい(x > y)、xとyは同じである(x ₌₌ y)と言うように、xとyを比較する演算子があり、この演算子を利用して条件式を作ることができます。

 比較演算子に次のようなものがあります。

演算子 内容説明
x == y x と y が等しい
x != y x と y が等しくない
x > y x は y より大きい
x >= y x は y 以上(等しいか大きい)
x < y x は y よりも小さい
x <= y x は y 以下(等しいか小さい)

 このような演算子を含む条件式があった際に、条件式のデータ型は真偽型(Boolean)と呼び、条件式が正しい場合は、「True」を、条件式が正しくない場合は「False」をとります。

 例えば、x に 100 、y に200とした場合、Google Colabでの結果は次のようになります。

文字列の比較

 前述の「比較演算子」では、x や y に数値を代入して比較を行いましたが、当然数値ではなく「文字列」なども比較が行えます。

 しかし、文字列の場合は数値の比較と異なり概念的に難しいです。

 一般的には、次のルールにしたがって比較が行われます。

  1. 数値の文字列は、0より数が大きくなるほど大きくなります。(0<1<…<5…<9)
  2. 小文字のアルファベットでは、a が最も小さくz が最も大きい。(a<b…<o<p…<z)
  3. 大文字のアルファベットと小文字のアルファベットでは大文字の方が小さい。(A<a…O<o…Z<z)
  4. 数値の文字列よりアルファベットの文字列の方が大きい。(0<A<a)
  5. 「ひらがな」より「カタカナ」の方が大きい。(あ<ア)
  6. 「ひらがな」、「カタカナ」よりも「漢字」の方が大きい。(あ<ア<亜)

 上述のルールでもわからない場合は、UTF-8 (Pythonの標準の文字コード、Unicode Transformation Format, and the ‘8’)のコードポイントを調べれば、文字列の大小を知ることができます。

 コンピュータで扱われる数値に文字列を変換し、その大小を見ればよいことになります。

 Pythonでは文字列をコードポイントに変換する関数(ord())があります。

条件分岐

 Pythonでは、条件分岐をする文として「if 文」があり、ExcelなどのVBAで利用できるSelect Case文などは使えません(ない)。

 条件分岐の一般的な構文は次の通りです。

if 条件式1 :
    処理
      :
 elif 条件式2 :
     処理
   :
else :
    処理
   :

 「elif 節」は何度でも使え、「else節」は最後に1回だけ使えます。

 例えば、点数などにより評価を付けるとし、100点満点で90点より高い場合は「評価A」、70点より高い場合は「評価B」、50点より高い場合は「評価C」、50以下の場合は「評価D」とするようなプログラムを考えてみましょう。

  下記のプログラムは、x=95としているので、結果は「評価A」となっていますが、x に色々な数値を入れて見て試して見て下さい。

条件式を書く上で注意すること

  1. if 条件式、elif 節、else節の後に忘れずに「:」を入れること
  2. if 条件式、elif 節、else節の処理部分は、4文字分字下げすること

 また、場合によっては「elif 節」や「else節」はなくともよいです。

 例えば、点数が70点以上であれば「合格」とするプログラムを書くのであれば、次のようになります。

 

 また、点数が70点以上であれば「合格」、70より少なければ「不合格」とするプログラムを書くのであれば、次のようになります。

おわりに

 如何だったでしょうか?

 条件式と分岐、比較演算子、文字列の比較、条件分岐などについて解説してきました。

 この記事を読みながらPythonを学んでもらえればと思います。

 次をお楽しみに?

以上です。

 

コメント

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