Pythonでは、if
、elif
、else
というキーワードを使って条件分岐を行います。特にelif
とor
を組み合わせた条件文は、初心者にとっては少し混乱を招くかもしれません。以下にその正しい使い方と注意点を説明します。
elif
とor
の基本的な使い方
Pythonのelif
は、前のif
文の条件がFalse
の場合に次の条件をチェックします。そして、その条件がTrue
であれば、そのelif
ブロック内のコードが実行されます。
一方、or
は2つの条件のうち少なくとも1つがTrue
であれば全体の結果がTrue
になる論理演算子です。
これらを組み合わせて、以下のようなコードを書くことができます。
today = 'Sunday'
if today=='Monday':
print('Your weekend is over. Go to work.')
elif today=='Sunday' or today=='Saturday':
print('Today is off.')
else:
print('Go to work.')
このコードでは、today
が'Monday'
であれば'Your weekend is over. Go to work.'
を出力し、'Sunday'
または'Saturday'
であれば'Today is off.'
を出力します。それ以外の場合は'Go to work.'
を出力します。
注意点
しかし、or
を使う際には注意が必要です。以下のようなコードを見てみましょう。
if a == 'hoge' or 'fuga':
print('coffee')
else:
print('tea')
このコードでは、a
に何を代入しても'coffee'
が出力され、else:
は無視されます。これは、Pythonがor
の左側と右側を個別に評価するためです。つまり、'fuga'
は非空の文字列であるため、常にTrue
と評価されます。
したがって、上記のコードは以下のように修正する必要があります。
if a == 'hoge' or a == 'fuga':
print('coffee')
else:
print('tea')
この修正により、a
が'hoge'
または'fuga'
である場合にのみ'coffee'
が出力されます。
以上がPythonのelif
とor
の基本的な使い方と注意点です。これらを理解することで、より複雑な条件分岐を効率的に書くことができます。Happy coding!