前回まではif文を用いて一つ条件を指定し、処理の流れを状況に応じて変える方法を確認しました。今回は一つだけでなくいくつかの条件のもとに処理の流れを制御する方法について確認いたします。
if文で使用できる論理演算子
if文では「AND」「OR」「NOT」の3つの演算子が使用可能です。それぞれの演算子が何ぞやという方は以下の記事をご確認ください。

ANDを使用する場合は「and」、ORを使用する場合は「or」、NOTを使用する場合は[not」です。
論理演算子を使用したif文の書き方
それでは論理演算子を使用した書き方を確認します。「AND , OR 」と「NOT」の場合とで書き方が異なるので注意してください。
AND , OR の場合

NOTの場合

論理演算子は複数連結させることもできますし、複数連結させた条件式を括弧”()”でくくってNOTで一括して否定することもできます。なお括弧でくくらない場合は前の条件式だけにNOTがかかります。

複数条件の例
それでは実際に書き方について確認します。
まずは単純な書き方について確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
a = "red" b = "blue" if a == "red" and b == "red": print("両方とも赤色です") #False elif a == "red" or b == "red": print("どちらか一方は赤色です。") #True elif not a == "red": print("aは赤色ではありません。") #False elif not b == "red": print("bは赤色ではありません。") #True else: print("予期しないことが起きています。") |
上記の場合、2行目と4行目の文章が”True”になります。上から順に処理をしていくので、2行目の文章が出力されることに注意してください。
最後にそれぞれの論理演算子を複数使用しながら条件式を定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
name = "George" age = 5 sex = "male" if (name == "Jonny" and sex == "male") or (name == "Jonathan" and sex == "male"): #False print("ジョースター家です。") elif not (age < 12 and sex == "male"): #False print("小さい女の子です。") elif not age < 20 and sex == "female": #False print("成人女性です。") elif name == "George" and age <10 and sex == "male": #True print("ハァイ、ジョージィ") else: print("Who are you !?") |
上記では4行目の条件以外はFalseですので、4つ目のペニーワイズが出力されます。Colabを用いて変数の中身を変えたり、条件を変えていじって遊んでみてください。
いかがでしたでしょうか。複数条件を使用し始めるとかなり処理が複雑になり可読性も落ちやすいので、もっと単純な条件式にならないかとかを常に考えながら後で見返しても意味が分かるようにするとよいでしょう。
また、わからないこと等ございましたらお気軽にコメント等でご連絡いただけますと幸いです。
今回はここまでです。お疲れ様でした。
コメント