Python : switch文と同様の処理を記述する方法

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文で記述できる処理と似た処理を実装しています。

実行結果

プログラムを実行します。下図の画面が表示され、入力待ち状態になります。
Python : switch文と同様の処理を記述する方法:画像1

"F"を入力し[Enter]キーを押します。
Python : switch文と同様の処理を記述する方法:画像2

[F]が入力された旨のメッセージが表示されます。
Python : switch文と同様の処理を記述する方法:画像3

"L"を入力した場合は別のメッセージが表示されます。
Python : switch文と同様の処理を記述する方法:画像4
Python : switch文と同様の処理を記述する方法:画像5

プログラム例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文のため完全な一致ではなく式による判定ができます。

実行結果

プロジェクトを実行します。現在時刻の秒数によって違ったメッセージが表示されます。
Python : switch文と同様の処理を記述する方法:画像6
Python : switch文と同様の処理を記述する方法:画像7

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2020-02-04
Copyright © 1995–2025 iPentec all rights reserverd.