2020年3月21日土曜日

【if文】条件分岐処理

 if文を使うと条件式が成立する(True)か不成立(False)かによって実行する処理を変える、条件分岐処理を実現できる。



1. if文の基本形

条件式がTrueの場合、それに続くブロックで記載さ入れた処理が実行される。条件式がFalseの場合は何も処理されずif文が終了される。

if 条件式:
    条件式がTrueの場合の処理


条件式がFalseの場合に処理を行う場合はelseを用いる。

if 条件式:
    条件式がTrueの場合の処理
else:
    条件式がFalseの場合の処理


条件式が複数の場合にはelifを用い、はじめの条件式でFalseの場合次の条件式で判定される。elifはいくつあっても良い。

if 条件式1:
    条件式1がTrueの場合の処理
elif 条件式2:
    条件式2がTrueの場合の処理
else:
    条件式1,2共にFalseの場合の処理


if,elif,elseの例。xに6を代入、xが5より小さいか判定する条件式1でFalse、xが8より大きいか判定する条件式2でもFalseとなりelse以下の処理が実行される。

x = 6
if x<5:
    print('5より小さい')
elif x>8:
    print('8より大きい')
else:
    print('5と8の間') 

実行結果

5と8の間


2. 条件式の書き方

 条件式を書く際には比較演算子を用いる。比較演算子は値の比較や値が含まれているかどうかを示すもので以下の記述方法がある。

比較演算子 意味
x == y x と y が等しければ True
x != y x と y が等しくなければ True
x > y x が y よりも大きければ True
x < y x が y よりも小さければ True
x >= y x が y 以上なら True
x <= y x が y 以下なら True
x in y x が y に含まれていれば True
x not in y x が y に含まれていなければ True


 比較演算子によるif文の例。x!=6つまりxが6でなければTrue。xは5なのでTrueとなりPrint文が実行される。

x = 5
if x!=6:
    print('6ではない')

実行結果

6ではない


リストの中に'イチゴ'が含まれていればTrue。リストfluitsには'イチゴ'が含まれておりTrueとなりPrint文が実行される。

fulits = ['バナナ','イチゴ','みかん']
if 'イチゴ' in fulits:
    print('リストに含まれる')

実行結果

リストに含まれる


 文字を比較演算子で比較することも可能。その場合は文字のユニコードポイントを比較することとなる。
次の例では文字'6'が文字'5'より大きければTrueとなるが比較しているのは文字'6'のユニコードポイント54と文字'5'のユニコードポイント53となる。ちなみにユニコードポイントは組込関数ordで取得することができ'5'は53、'6'は54が割り当てられていることが確認できる。

x = '6'
if x>'5':
    print('5より大きい')  
ord(x),ord('5')    

実行結果

5より大きい
(54, 53)


3. 論理演算子を用いた条件式の書き方

 複数の条件を並べて条件式を作成する場合、論理演算子and,orを用いる。また条件を否定する場合は論理演算子notを用いる。

条件1 and 条件2       条件1,2両方とも True ならば True
条件1 or 条件2        条件1,2いずれかが True ならば True
not 条件              条件が True ならば False、条件が False ならば True


2つの条件をandでつないだ例

x = 7
if x>5 and x<9:
    print('5より大きく9より小さい')

実行結果

5より大きく9より小さい


2つの条件をorでつないだ例

x = 2
if x>5 or x<3:
    print('5より大きいか3より小さい')   

実行結果

5より大きいか3より小さい


notの例

x = 2
if not x>5:
    print('5より大きくない')      

実行結果

5より大きくない


4. リファレンス

Python チュートリアル > 4. その他の制御フローツール > 4.1. if 文
Python 言語リファレンス > 8. 複合文 (compound statement) > 8.1. if 文

使用バージョン:Python 3.7.0

0 件のコメント:

コメントを投稿