Cho đến phiên bản 3.10, Python chưa bao giờ có một tính năng thực hiện những gì câu lệnh chuyển đổi thực hiện trong các ngôn ngữ lập trình khác.
Vì vậy, nếu bạn muốn thực hiện nhiều câu lệnh điều kiện, bạn sẽ phải sử dụng elif
từ khóa như thế này:
age = 120
if age > 90:
print("You are too old to party, granny.")
elif age < 0:
print("You're yet to be born")
elif age >= 18:
print("You are allowed to party")
else:
"You're too young to party"
# Output: You are too old to party, granny.
Từ phiên bản 3.10 trở lên, Python đã triển khai tính năng trường hợp chuyển đổi có tên là “khớp mẫu cấu trúc”. Bạn có thể thực hiện tính năng này với match
và case
từ khóa.
Một số người tranh luận liệu có hay không match
và case
là các từ khóa trong Python. Điều này là do bạn có thể sử dụng cả hai tên này làm tên biến và tên hàm. Nhưng đó là một câu chuyện khác cho một ngày khác.
Bạn có thể tham khảo cả hai từ khóa là “từ khóa mềm” nếu bạn thích.
Trong bài viết này, tôi sẽ chỉ cho bạn cách viết một câu lệnh switch trong Python bằng cách sử dụng match
và case
từ khóa.
Nhưng trước đó, tôi phải chỉ cho bạn cách các lập trình viên Python đã sử dụng để mô phỏng câu lệnh switch ngày xưa.
Cách các lập trình viên Python sử dụng để mô phỏng Switch Case
Ngày trước, có nhiều cách Pythonistas mô phỏng các câu lệnh chuyển đổi.
Sử dụng một chức năng và elif
từ khóa là một trong số đó và bạn có thể làm theo cách này:
def switch(lang):
if lang == "JavaScript":
return "You can become a web developer."
elif lang == "PHP":
return "You can become a backend developer."
elif lang == "Python":
return "You can become a Data Scientist"
elif lang == "Solidity":
return "You can become a Blockchain developer."
elif lang == "Java":
return "You can become a mobile app developer"
print(switch("JavaScript"))
print(switch("PHP"))
print(switch("Java"))
"""
Output:
You can become a web developer.
You can become a backend developer.
You can become a mobile app developer
"""
Cách triển khai các câu lệnh chuyển đổi với match
và case
Từ khóa trong Python 3.10
Để viết câu lệnh switch với tính năng khớp mẫu cấu trúc, bạn có thể sử dụng cú pháp bên dưới:
match term:
case pattern-1:
action-1
case pattern-2:
action-2
case pattern-3:
action-3
case _:
action-default
Lưu ý rằng ký hiệu gạch dưới là ký hiệu bạn sử dụng để xác định trường hợp mặc định cho câu lệnh switch trong Python.
Một ví dụ về câu lệnh chuyển đổi được viết bằng cú pháp trường hợp khớp được hiển thị bên dưới. Đây là một chương trình in ra những gì bạn có thể trở thành khi học các ngôn ngữ lập trình khác nhau:
lang = input("What's the programming language you want to learn? ")
match lang:
case "JavaScript":
print("You can become a web developer.")
case "Python":
print("You can become a Data Scientist")
case "PHP":
print("You can become a backend developer")
case "Solidity":
print("You can become a Blockchain developer")
case "Java":
print("You can become a mobile app developer")
case _:
print("The language doesn't matter, what matters is solving problems.")
Đó là một cú pháp rõ ràng hơn nhiều elif
câu lệnh và mô phỏng câu lệnh chuyển đổi với một chức năng.
Bạn có thể nhận thấy rằng tôi đã không thêm từ khóa break vào từng trường hợp, vì nó được thực hiện trong các ngôn ngữ lập trình khác. Đó là lợi thế mà câu lệnh switch gốc của Python có được so với các ngôn ngữ khác. Chức năng của từ khóa break được thực hiện ở hậu trường cho bạn.
Phần kết luận
Bài viết này hướng dẫn bạn cách viết câu lệnh switch với từ khóa “match” và “case”. Bạn cũng đã biết cách các lập trình viên Python viết nó trước phiên bản 3.10.
Câu lệnh đối sánh và trường hợp trong Python đã được triển khai để cung cấp chức năng mà câu lệnh chuyển đổi có trong các ngôn ngữ lập trình khác như JavaScript, PHP, C++ và các ngôn ngữ khác mang lại cho chúng ta.
Cảm ơn bạn đã đọc.