Python入門:match文
match文とは
match文は、Python3.10で追加された機能のことで、JavaやC言語でいうswitch文の役割を果たします。
※Pythonでは、switch文は使えませんが【Python switch】と検索しても当たるようにタイトルにmatch(switch)と記述しています。
case 値1:
変数と値1が等しいときの処理
case 値2:
変数と値2が等しいときの処理
...
上のように、match文は一つの変数の値に注目して条件分岐します。
match文はいちいち条件式を書かなくていいので、if文と比べて読みやすいことが多いと思います。
a = 3
#if文を使う場合
if a == 1 :
print("今日の運勢は吉!")
elif a == 2 :
print("今日の運勢は凶!")
elif a == 3 :
print("今日の運勢は大凶!")
#match文を使う場合
match a :
case 1 :
print("今日の運勢は吉!")
case 2 :
print("今日の運勢は凶!")
case 3 :
print("今日の運勢は大凶!")
今日の運勢は大凶!
すべての値とマッチしない場合の処理を入れたい時は,アンダーバーを使います。
a = 4
#if文を使う場合
if a == 1 :
print("今日の運勢は吉!")
elif a == 2 :
print("今日の運勢は凶!")
elif a == 3 :
print("今日の運勢は大凶!")
else :
print("今日の運勢は大吉")
#match文を使う場合
match a :
case 1 :
print("今日の運勢は吉!")
case 2 :
print("今日の運勢は凶!")
case 3 :
print("今日の運勢は大凶!")
case _ : #アンダーバーを入れる
print("今日の運勢は大吉")
今日の運勢は大凶!
練習問題
では、これまでの内容をもとに次のプログラムを作ってみましょう!
-
今日の天気を出力すると返事が返ってくるプログラム。
晴れなら1曇りなら2雨なら3と入力する。
1と入力されたら「いい天気ですね」と返事する。
2と入力されたら「今日は日焼けすることはなさそうですね」と返事する。
3と入力されたら「明日は晴れるよ」と返事する。
解答例※あくまで一例です。
(1)
weather = int(input("今日の天気はどうですか?\n1:晴れ\n2:曇り\n3:雨\n>>"))
match weather :
case 1:
print("いい天気ですね")
case 2:
print("今日は日焼けすることはなさそうですね")
case 3:
print("明日は晴れるよ")
今日の天気はどうですか?
1:晴れ
2:曇り
3:雨
>>1
いい天気ですね
今日の天気はどうですか?
1:晴れ
2:曇り
3:雨
>>2
今日は日焼けすることはなさそうですね
今日の天気はどうですか?
1:晴れ
2:曇り
3:雨
>>3
明日は晴れるよ
最後に
この記事では、Pythonでのmatch文について解説しました。
もっとPythonを学びたい!という方はこちらの記事でPythonの基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!