Python入門:条件演算子(三項演算子)
条件演算子とは
一つの値を場合分けして置き換えたいときは、条件演算子を使うことができます。
【条件式が真のときの値】、【条件式】、【条件式が偽の時の値】の3つで構成されているため、別名 三項演算子とも呼ばれています。
条件演算子を使うと、普段ならif-else文を4行で書かないといけないコードをたったの1行で済ませることができます。
num = int(input("点数を入力してください>>"))
#if文で書いた場合
if num >= 70 :
print("いい点数ですね!")
else :
print("もう少し頑張ろう!")
#条件演算子を使って書いた場合
print("いい点数ですね!" if num >= 70 else "もう少し頑張ろう!")
もう少し頑張ろう!
もう少し頑張ろう!
いい点数ですね!
いい点数ですね!
条件演算子のネスト
条件演算子では、ifとelseはありますが、elifが存在しません。そのため、条件演算子をネストして、3つ以上の条件分岐を作ることができます。
num = int(input("点数を入力してください>>"))
#if文で書いた場合
if num >= 70 :
print("いい点数ですね!")
elif num >= 50 :
print("次は高得点!")
else :
print("もう少し頑張ろう!")
#条件演算子を使って書いた場合
print("いい点数ですね!" if num >= 70 else "次は高得点!" if num >= 50 else "もう少し頑張ろう!")
もう少し頑張ろう!
もう少し頑張ろう!
次は高得点!
次は高得点!
いい点数ですね!
いい点数ですね!
上のコードでは、左側の条件演算子が"いい点数ですね!"という文字列か右側の条件演算子の値かを判別し、右側の条件演算子が"次は高得点!"という文字列か"もう少し頑張ろう!"という文字列かを判別します。
練習問題
では、これまでの内容をもとに次のプログラムを作ってみましょう!
- 生まれた月が1月から4月なら大吉、5月から8月なら吉、9月から12月なら凶と占うプログラム
解答例※あくまで一例です。
(1)
month = int(input("生まれた月から、今日の運勢を占います\n誕生月を入力してください>>"))
print("ちゃんと答えてください" if month < 1 or month > 12 else "今日のあなたの運勢は大吉です" if month <=4 else "今日のあなたの運勢は吉です" if month <= 8 else "今日のあなたの運勢は凶です")
生まれた月から、今日の運勢を占います
誕生月を入力してください>>3
今日のあなたの運勢は大吉です
生まれた月から、今日の運勢を占います
誕生月を入力してください>>6
今日のあなたの運勢は吉です
生まれた月から、今日の運勢を占います
誕生月を入力してください>>10
今日のあなたの運勢は凶です
最後に
この記事では、条件演算子(三項演算子)の扱い方について解説しました。
もっとPythonを学びたい!という方はこちらの記事でPythonの基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!