switch文と同様の処理を記述する - Python
Pythonでswitch文と同様の処理を記述するコードを紹介します。
概要
Pythonにはswitch文は無いため、switch文と同様の処理をするコードを記述する方法を紹介します。
方法 : if elif 文を利用する
if elif 文を利用するとswitch文と同等の処理を記述できます。
書式
下記の書式になります。
if (条件式1):
(条件式1が真のときに実行する処理)
elif (条件式2):
(条件式2が真のときに実行する処理)
elif (条件式3):
(条件式3が真のときに実行する処理)
...
else:
(条件式がいずれも偽のときに実行する処理)
プログラム例1
下記のコードを記述します。
print('L: Load')
print('S: Save')
print('F: Find')
print('Q: Quit')
chars = input()
if chars == 'L':
print('Loadメニューが選択されました')
elif chars=='S':
print('Saveメニューが選択されました')
elif chars=='F':
print('Findメニューが選択されました')
elif chars=='Q':
print('Quitメニューが選択されました')
else:
print('正しくない入力です')
解説
最初のprint文でメニューの項目を画面に出力します。input関数で文字の入力を待ちます。文字が入力されると、if elif 文で入力された文字を判定しメッセージを表示します。switch文で記述できる処理と似た処理を実装しています。
実行結果
プログラムを実行します。下図の画面が表示され、入力待ち状態になります。
"F"を入力し[Enter]キーを押します。
[F]が入力された旨のメッセージが表示されます。
"L"を入力した場合は別のメッセージが表示されます。
プログラム例2
下記のコードを記述します。
import datetime
now = datetime.datetime.now()
if 50 < now.second:
print('50秒以上です')
elif 40 < now.second:
print('40秒以上です')
elif 30 < now.second:
print('30秒以上です')
elif 20 < now.second:
print('20秒以上です')
elif 10 < now.second:
print('10秒以上です')
else:
print('10秒より小さいです')
解説
if elif 文で条件を判定します。if文のため完全な一致ではなく式による判定ができます。
実行結果
プロジェクトを実行します。現在時刻の秒数によって違ったメッセージが表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用