【Python】Select case文の代用(if文・match文)

Python

はじめに

にゃーすけ
にゃーすけ

PythonでSelect case文を使用したいにゃ。
どうすればできるのかにゃあ。

しげっち
しげっち

Pythonのバージョンによるけど、3.9まではif文で代用するしかないんだ。
3.10以上であればmatch文を用いれば実現できるよ!
それぞれ解説していくよ。

Select caseをif文で代用する

使用しているPythonのバージョンが3.9以下の場合はSelect caseのような書き方はできません。
if文で書いていく事になります。
サンプルを見てみましょう。

food = 'シュークリーム'

if food == 'アイスクリーム':
    print("ひんやり甘くて大好きだにゃ。")
elif food == 'ショートケーキ':
    print('生クリームは飲み物だにゃ。')
elif food == 'シュークリーム':
    print('これも飲み物だにゃ。')
elif food == 'ピーマン':
    print('しげっちにあげるにゃ。')
else:
    print('甘いものならどんと来いだにゃ')

# 実行結果
# これも飲み物だにゃ。

ifelifを用いて条件を書いていきます。
どれにも当てはまらない場合は、elseの処理になります。

match文を使用する

match文はPythonのバージョン3.10から新たに導入されました。
早速サンプルを見てみましょう。

food = 'シュークリーム'

match food:
    case 'アイスクリーム':
        print("ひんやり甘くて大好きだにゃ。")
    case 'ショートケーキ':
        print('生クリームは飲み物だにゃ。')
    case 'シュークリーム':
        print('これも飲み物だにゃ。')
    case 'ピーマン':
        print('しげっちにあげるにゃ。')
    case _:
        print('甘いものならどんと来いだにゃ')

# 実行結果
# これも飲み物だにゃ。

matchの隣に式(例の場合food)を書き、式に当てはまる条件をcaseの隣に書きます。
どの条件にも当てはまらない場合はcaseの隣にアンダーバー(_)を書いたものが対象となり、その中の処理を実行します。

まとめ

PythonでSelect case文はありません。
使用するPythonのバージョンにより、if文で代用するかmatch文を使用します。

  • Pythonのバージョンが3.9以下の場合はif文で代用する
  • Pythonのバージョンが3.10以上の場合はmatch文が使用できる
にゃーすけ
にゃーすけ

サンプルにデザートで例えてくれたからよく理解できたにゃ!

しげっち
しげっち

ていうか、ピーマンも食べてね!

タイトルとURLをコピーしました