Python If文などの制御文について知ろう

 

 

Pythonは制御文と呼ばれる条件に基づく処理をすることができます。

if文やmatchにより複数の条件式に合う判定処理を行えます。

 

ここでは、

Pythonのif文について知りたい

Pythonで新しく追加されたmatch構文について知りたい

という方におすすめです。

制御文とは

ifによる比較や判定式といったことやmatchによるパターン判定といった命令の構造を制御するような構文になります。

python以外の言語ではブロックなどで囲まれた命令の構文を制御文と呼んだりします。

pythonはifやmatch,繰り返し処理などといった制御文があります。

if文

if文は処理したい目的に応じて条件を元に判定する場合に使います。

ifは英語で「もし~」のような仮定を表しますが、pythonのif文もそれに近い条件式によって判定するようなプログラムを書けます。

条件式には比較演算子と呼ばれる式があり、それを用いて判定することができます。

if文を使ってみよう

if文の条件式を用いる際の、比較演算子は以下のようになります。

演算子 演算子の意味
== 等しい
!= 等しくない
< より小さい(a<b aはbより小さい)
<= 以下(a<=b aはb以下である)
> より大きい(a>b aはbより大きい)
>= 以上(a>=b aはb以上である)
in 要素があるかどうか(ない場合はFalse)

 

比較演算子による結果はTrueかFalseで返されます。

Trueは真の値であれ正しいことになります。

Falseは偽の値であり違うことになります。

 

if文の構文は、

if 条件式:
    条件式がTrueだった場合の処理
else:
    条件式以外である場合の処理(条件式で完結させたい場合はelseを省ける。)

となります。

if文の条件式に当てはまる条件がない場合は、何の処理もされません。

 

if文の例としていくつか見ていきましょう。

x = 5
if x == 5:
    print('x is 5')
else:
    print('x is not 5')

fruits = ['apple','orange']
if 'apple' in fruits:
    print('フルーツにappleが含まれます。')

 

①は条件式に5が等しいかを判定し、等しい場合は最初の処理がされます。

②はfruitsにappleという要素を含むかで、含んでいるので処理されます。

inは特定の要素に対して文字列が含まれているかの判定をします。

 

if-elif文

if文の他にelifという複数条件を指定する場合に使うことができます。

elifの例を見てみましょう。

x = 5
y = 10
if x != 5:
    print('x is not 5')
elif y > x:
    print('y is greater than x')
else:
    print('else value')

 

①はxとyの変数を用意し、xは5と等しくないかとyはxより大きいかを判定しています。

elseはそれに当てはまらない条件になります。

1の場合は、yはxより大きいので真ん中の判定となります。

 

論理演算子

if文の条件式において2つ以上を判定する場合に用いることができる演算子になります。

演算子 演算子の意味
and a and b(aかつbである論理積)
or a and b(aまたはbである論理和)
not a not b(aはbではない否定)

 

論理演算子による例を見てみましょう。

x = 5
y = 10
if 1 <= x and x <= y:
    print('1~10')
else:
    print('else')

x = 6
if x <= 2 or x == 6:
    print('x is 6')

 

①の判定はxが1以上で、かつxは10以下の範囲内であるかを表しています。

そのためandの条件があてはまります。

①の演算子はi「f 1<=x<=y:」と表すこともできます。

 

②の判定はxは2以下またはxは6と等しいかであるか表しています。

xは6と等しくどちらか一方が正しいので条件にあてはまります。

 

match文

match文はpython3.10で新しく追加された構文です。

match文ではパターンマッチングすることができます。

if文と違い、特定の値がどのパターンにあてはまるかを判定します。

match文の例を見てみましょう。

from enum import Enum
class Color(Enum):
    RED = 'red'
    GREEN = 'green'
    BLUE = 'blue'
color = Color(input("Enter your choice of 'red', 'blue' or 'green': "))
match color:
    case Color.RED:
        print("its red!")
    case Color.GREEN:
        print("its green")
    case Color.BLUE:
        print("its blue")

 

変数にそれぞれ色を用意して、colorにinputで入力の関数を使います。

入力された値がcaseにより変数の値と正しいかを判定しパターンにあった処理がされます。

パターンにない処理はエラーになります。

 

match文は新しくでた機能でありますが、以前のバージョンでは使えないこともあり if文を優先的に使うようにしましょう。

 

まとめ

制御文にはif文やmatch文といった命令を制御するような構文があります。

比較演算子や論理演算子を用いて、詳細な条件式による判定をすることができます。

match文はpython3.10で追加され、任意の値を判定する場合に使えます。

if文とmatch文をどう使いわけるかが大事になってきます。