![見出し画像](https://assets.st-note.com/production/uploads/images/92984906/rectangle_large_type_2_044a68839a6cce53f8185a8ae940b576.png?width=1200)
[Python]複数の条件分岐を行う(if elif else)
以前の記事で、OpneWeatherMap APIとLINE Notifyを使って気圧変化を通知する、を自動運用しています。とても便利に使っているのですが、人というのは飽きっぽいものです。
「メッセージがいつも同じでつまらない」
と言い出した。そこで、少し変化をつけました。
複数の条件分岐を行うのに、このような仕組みを用いました。
if 条件1:
実行したいこと1
elif 条件2:
実行したいこと2
else:
実行したいこと3
他の言語に慣れている私は、else if と思いきや、Python では elif が使えます。条件1に合うときは実行したいこと1を実行。条件2に合うときは実行したいこと2、それ以外のときは実行したいこと3 を実行します。
以前の記事からの修正点のみ記載します。
for i, diff_kiatsu in enumerate(df[1].diff()):
if i >= 16:
msg_push = "この2日間の気圧情報でした〜(メッセージランダムお試し)"
send_line(msg_push)
break
else:
sabun = diff_kiatsu
if sabun >= 2:
j = i % 3
if j == 0:
msg_push = df[0][i-1] + "から気圧急上昇、お薬飲みな〜"
send_line(msg_push)
print("msg_push=", msg_push)
elif j == 1:
msg_push = df[0][i-1] + "から気圧急上昇、お薬持ったか?"
send_line(msg_push)
print("msg_push=", msg_push)
else:
msg_push = df[0][i-1] + "から気圧急上昇、我慢するなよ〜"
send_line(msg_push)
print("msg_push=", msg_push)
【ざっくり解説】(修正点は9行目以降。それ以外は以前の記事を参照)
・9行目:変数 j に、i を 3 で割った余りを入れる。結果、j には 0 , 1 , 2 のいずれかの値が入ることになる。
・10行目:j が 0 の時、11行目〜13行目を実行する。
・11行目:LINE通知するメッセージを設定する。
・12行目:11行目で設定したメッセージをLINEで通知する。
・13行目:動作確認のため12行目と同じ内容をコンソールに表示する。
・14行目:j が 1 の時、15行目〜17行目を実行する。
・15〜17行目:11行目〜13行目と同じ動き。
・18行目:それ以外の時、結果として j が 2の時、19行目〜21行目を実行する。
・19〜21行目:11行目〜13行目と同じ動き。
これにより、LINE 通知するメッセージに変化を持たせることができました。この例は、偶然にも、定義した 3 パターン全てが表示されてます。
![](https://assets.st-note.com/img/1670640279464-vS1uLFj5g3.png?width=1200)
この仕組みを工夫すれば、こっそりレアメッセージを入れるといった楽しみ方もできますね。
この記事が気に入ったらサポートをしてみませんか?