Python のバージョン 3.10 から match
による条件分岐が利用できるようになりました.例えば,大学の授業の成績(S, A, B, C, D のいずれか)を与えると,その成績に応じたメッセージを表示するようにしてみます.
grade = "S"
match grade:
case "S":
print("大変良くできました")
case "A":
print("良くできました")
case "B":
print("できました")
case "C":
print("なんとか合格です")
case "D":
print("不合格です")
大変良くできました
上と同じ処理を if
文を使って次のよう書くこともできます.しかしながら,match
を使うとより直感的で読みやすいコードになります.
grade = "S"
if grade == "S":
print("大変良くできました")
elif grade == "A":
print("良くできました")
elif grade == "B":
print("できました")
elif grade == "C":
print("なんとか合格です")
elif grade == "D":
print("不合格です")
大変良くできました
今度は「合格」か「不合格」だけの判定をしてみましょう.このときは |
で「または」という意味の条件を指定することになります.
grade = "C"
match grade:
case "S" | "A" | "B" | "C":
print("合格です")
case "D":
print("不合格です")
合格です
次は1〜3の整数で条件分岐を行います.条件判断するための変数が整数型の場合は case 1:
のように1
を " "
で囲わないことに注意してください.さらにどれにも該当しなかった場合に何らかの処理を行いたい場合は case _:
を利用します.
value = int(input("1から3の値を入力してください: "))
match value:
case 1:
print("今日は慎重に行動しよう")
case 2:
print("今日はチャンスに恵まれる日")
case 3:
print("新しいことを始めよう")
case _:
print("正しい数値を入力してね")
1から3の値を入力してください: 3 ⏎
新しいことを始めよう