Python 制御フロー

Web検索はbingがおすすめ!

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を愛用
掲載日: 2020-02-04
iPentec all rights reserverd.