Switch Case trong Python

0
451
Bài số 14 trong 26 bài của series Python Không Khó

Không giống như các ngôn ngữ khác, Python không có cấu trúc switch case. Nếu như ở trong các ngôn ngữ khác như C/C++, java,… Bạn sẽ thấy điều đó thật kì lạ. Mình đã thử tìm hiểu vì sao để có thể sử dụng được switch case trong python. Trong bài viết hôm nay Lập trình không khó sẽ hướng dẫn các bạn một số cách để sử dụng cấu trúc switch case trong python.

Switch Case Trong python

Nếu như trong C/C++ có lẽ bạn đã từng thấy cấu trúc như:

Nhưng Python không có cấu trúc như trên. Tuy nhiên chúng ta có thể dùng một số cách khác để có được một câu điều kiện tương tự như switch case.

Cách tạo một switch case trong python từ một dictionary

Chúng ta có thể dùng cấu trúc sẵn có if-else-other để mô tả lại cấu trúc Switch case trong python. Nhưng nếu làm như vậy thì đó vẫn chỉ là if-else chứ không phải là switch case.

Thay vào đó chúng ta sử dụng một dictionary để ánh xạ đến các case. Ở ví dụ dưới đây mình tạo một function là week để gọi tới các ngày trong tuần đó. Và nó sẽ được thực hiện như sau:


Phương thức get() của kiểu dữ liệu từ điển trả về giá trị của đối số x được truyền nếu nó có trong từ điển, nếu không đối số thứ hai nothing sẽ được gán làm giá trị mặc định của đối số được truyền.

Như vậy chúng ta đã có một function week tương tự như một switch case trong các ngôn ngữ khác, và bây giờ chỉ cần truyền tham số vào để thực hiện chương trình.

Switch case trong python với các hàm

Ví dụ trên đã chỉ cho chúng ta cách tạo một câu lệnh switch case đơn giản trong python. Để xử lí những trường hợp khó hơn, chúng ta có thể thay thế các case thành các hàm, mỗi hàm sẽ thực hiện các nhiệm vụ khác nhau cho từng trường hợp.

Trong ví dụ ở dưới, hai hàm one và two sẽ thực hiện nếu chúng được gọi tới.

Switch case với python class

Việc sử dụng class khá dễ dàng để thực hiện tạo cấu trúc switch.

  • Trong ví dụ dưới đây, có một lớp Python_switch định nghĩa phương thức switch ().
  • Nó lấy ngày trong tuần làm đối số, chuyển đổi nó thành chuỗi và nối vào chữ ‘case_’. Sau đó, chuỗi kết quả được truyền cho phương thức getattr ().
  • Phương thức getattr () trả về một hàm phù hợp có sẵn trong lớp.
  • Nếu chuỗi không tìm thấy kết quả khớp, thì getattr () trả về hàm lambda như mặc định.

Như vậy, mình đã giới thiệu cho các bạn về cấu trúc switch case trong python.

Hẹn các bạn vào các bài học sau!!!

Hãy tham gia group lập trình không khó để cùng thảo luận về các vấn đề về lập trình.

Các bài viết trong SeriesBài trước: Câu điều kiện if else trong PythonBài sau: Vòng lặp For trong python

LEAVE A REPLY

Please enter your comment!
Please enter your name here