Hướng dẫn python case - trường hợp trăn

This entry is part 14 of 29 in the series Python Không Khó

82 / 100 / 100

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
  • Cách tạo một switch case trong python từ một dictionary
  • Switch case trong python với các hàm
  • Switch case với python class

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

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

switch(x){(x){

   case1:case1:

      coutcout<<"Sunday";

      break;break;

   case2:case2:

      coutcout<<"Monday";

      break;break;

   case3:case3:

      coutcout<<"Tuesday";

      break;break;

   case4:case4:

      coutcout<<"Wednesday";

      break;break;

   case5:case5:

      coutcout<<"Thursday";

      break;break;

   case6:case6:

      coutcout<<"Friday";

      break;break;

   case7:case7:

      coutcout<<"Saturday";

      break;break;

   default:default:

      coutcout<<"nothing";

}

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

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

Switch case với python class

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

switcher={={

1:'Sunday',:'Sunday',

2:'Monday',:'Monday',

3:'Tuesday',:'Tuesday',

4:'Wednesday',:'Wednesday',

5:'Thursday',:'Thursday',

6:'Friday',:'Friday',

7:'Saturday':'Saturday'

}

returnswitcher.get(x,"nothing")switcher.get(x,"nothing")

print(week(2))(week(2))

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.

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.

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

Switch case với python class

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

   case1:one():

    return"one"return"one"

   case2:two():

    return"two"return"two"

   case3:test(x):

    switcher={switcher ={

        1:one(),1:one(),

        2:two()2:two()

    }}

    returnswitcher.get(x,"nothing")return switcher.get(x,"nothing")

print(test(2))(test(2))

Switch case với python class

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

  •    case1:
  •    case2:
  •    case3:
  •    case4:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

classpython_switch:python_switch:

   case5:def switch(self,day_of_week):

   case6:default="Incorrect day"

        returngetattr(self,'case_'+str(day_of_week),lambda:default)()return getattr(self,'case_'+str(day_of_week),lambda:default)()

   case7:def case_1(self):

        return"Monday"return "Monday"

   default:def case_2(self):

        return"Tuesday"return"Tuesday"

}def case_3(self):

        return"Wednesday"return "Wednesday"

s=python_switch()=python_switch()

print(s.switch(1))(s.switch(1))

print(s.switch(0))(s.switch(0))

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.

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: