Hướng dẫn switch case python w3schools - trường hợp chuyển đổi python w3schools

GO Tuyên bố chuyển đổi


Tuyên bố chuyển đổi

Sử dụng câu lệnh switch để chọn một trong nhiều khối mã sẽ được thực thi.

Tuyên bố switch trong GO tương tự như các câu trong C, C ++, Java, JavaScript và PHP. Sự khác biệt là nó chỉ chạy trường hợp phù hợp để nó không cần một câu lệnh break.


Cú pháp chuyển đổi trường hợp đơn

Cú pháp

Biểu thức chuyển đổi {case x: & nbsp; & nbsp; // CODE BLOCK CASE Y: & nbsp; & nbsp; // CODE BLOCK CASE Z: ... Mặc định: & nbsp; & nbsp; // BLOCK CODE}
case x:
   // code block
case y:
   // code block
case z:
...
default:
   // code block
}

Đây là cách nó hoạt động:

  • Biểu thức được đánh giá một lần
  • Giá trị của biểu thức switch được so sánh với các giá trị của mỗi case
  • Nếu có một trận đấu, khối mã được liên kết được thực thi
  • Từ khóa
    def week(i):
            switcher={
                    0:'Sunday',
                    1:'Monday',
                    2:'Tuesday',
                    3:'Wednesday',
                    4:'Thursday',
                    5:'Friday',
                    6:'Saturday'
                 }
             return switcher.get(i,"Invalid day of week")
    
    0 là tùy chọn. Nó chỉ định một số mã để chạy nếu không có case khớp

Ví dụ chuyển đổi trường hợp một trường hợp

Ví dụ dưới đây sử dụng số ngày trong tuần để tính tên ngày trong tuần:

Thí dụ

Gói nhập chính ("FMT")
import ("fmt")

func main () {& nbsp; & nbsp; ngày: = 4
  day := 4

& nbsp; Thứ ba ") & nbsp; & nbsp; trường hợp 3: & nbsp; & nbsp; ; & nbsp; trường hợp 5: & nbsp; & nbsp; & nbsp; 7: & nbsp; & nbsp; & nbsp; & nbsp; fmt.println ("Chủ nhật") & nbsp; & nbsp;}}
  case 1:
    fmt.Println("Monday")
  case 2:
    fmt.Println("Tuesday")
  case 3:
    fmt.Println("Wednesday")
  case 4:
    fmt.Println("Thursday")
  case 5:
    fmt.Println("Friday")
  case 6:
    fmt.Println("Saturday")
  case 7:
    fmt.Println("Sunday")
  }
}

Result:

def week(i):
        switcher={
                0:'Sunday',
                1:'Monday',
                2:'Tuesday',
                3:'Wednesday',
                4:'Thursday',
                5:'Friday',
                6:'Saturday'
             }
         return switcher.get(i,"Invalid day of week")
2

Hãy tự mình thử »



Từ khóa mặc định

Từ khóa

def week(i):
        switcher={
                0:'Sunday',
                1:'Monday',
                2:'Tuesday',
                3:'Wednesday',
                4:'Thursday',
                5:'Friday',
                6:'Saturday'
             }
         return switcher.get(i,"Invalid day of week")
0 Chỉ định một số mã để chạy nếu không có trường hợp nào khớp:

Thí dụ

Gói nhập chính ("FMT")
import ("fmt")

func main () {& nbsp; & nbsp; ngày: = 4
  day := 8

& nbsp; Thứ ba ") & nbsp; & nbsp; trường hợp 3: & nbsp; & nbsp; ; & nbsp; trường hợp 5: & nbsp; & nbsp; & nbsp; 7: & nbsp; & nbsp; & nbsp; & nbsp; fmt.println ("Chủ nhật") & nbsp; & nbsp;}}
  case 1:
    fmt.Println("Monday")
  case 2:
    fmt.Println("Tuesday")
  case 3:
    fmt.Println("Wednesday")
  case 4:
    fmt.Println("Thursday")
  case 5:
    fmt.Println("Friday")
  case 6:
    fmt.Println("Saturday")
  case 7:
    fmt.Println("Sunday")
  default:
    fmt.Println("Not a weekday")
  }
}

Result:

def week(i):
        switcher={
                0:'Sunday',
                1:'Monday',
                2:'Tuesday',
                3:'Wednesday',
                4:'Thursday',
                5:'Friday',
                6:'Saturday'
             }
         return switcher.get(i,"Invalid day of week")
4

Hãy tự mình thử »


Từ khóa mặc định

Thí dụ

Gói nhập chính ("FMT")
import ("fmt")

func main () {& nbsp; & nbsp; ngày: = 4
  a := 3

& nbsp; Thứ ba ") & nbsp; & nbsp; trường hợp 3: & nbsp; & nbsp; ; & nbsp; trường hợp 5: & nbsp; & nbsp; & nbsp; 7: & nbsp; & nbsp; & nbsp; & nbsp; fmt.println ("Chủ nhật") & nbsp; & nbsp;}}
  case 1:
    fmt.Println("a is one")
  case "b":
    fmt.Println("a is b")
  }
}

Result:

def week(i):
        switcher={
                0:'Sunday',
                1:'Monday',
                2:'Tuesday',
                3:'Wednesday',
                4:'Thursday',
                5:'Friday',
                6:'Saturday'
             }
         return switcher.get(i,"Invalid day of week")
7

Hãy tự mình thử »


Từ khóa mặc định



GO Tuyên bố chuyển đổi nhiều trường hợp


Câu lệnh chuyển đổi đa trường hợp

Có thể có nhiều giá trị cho mỗi case trong câu lệnh switch.


Câu lệnh chuyển đổi đa trường hợp

Cú pháp

Biểu thức chuyển đổi {case x, y: & nbsp; & nbsp; // khối mã nếu biểu thức được đánh giá thành X hoặc Y Case V, W: & nbsp; & nbsp; // Khối mã nếu biểu thức được đánh giá thành V hoặc W Case Z: ... Mặc định: & nbsp; & nbsp; // khối mã nếu không tìm thấy biểu thức trong mọi trường hợp}
case x,y:
   // code block if expression is evaluated to x or y
case v,w:
   // code block if expression is evaluated to v or w
case z:
...
default:
   // code block if expression is not found in any cases
}

Ví dụ dưới đây sử dụng số ngày trong tuần để trả về tên ngày trong tuần:

Thí dụ

Gói nhập chính ("FMT")
import ("fmt")

func main () {& nbsp; & nbsp; ngày: = 5
   day := 5

& nbsp; & nbsp; chuyển đổi ngày {& nbsp; & nbsp; trường hợp 1,3,5: & nbsp; & nbsp; & nbsp; & nbsp; fmt.println ("Ngày lễ lẻ") & nbsp; & nbsp; trường hợp 2,4: & nbsp; & nbsp; & nbsp; & nbsp; fmt.println ("chẵn trong tuần") & nbsp; & nbsp; trường hợp 6,7: & nbsp; & nbsp; & nbsp; & nbsp; fmt.println ("cuối tuần") & nbsp; & nbsp; mặc định: & nbsp; & nbsp; }}
   case 1,3,5:
    fmt.Println("Odd weekday")
   case 2,4:
     fmt.Println("Even weekday")
   case 6,7:
    fmt.Println("Weekend")
  default:
    fmt.Println("Invalid day of day number")
  }
}

Result:

>>> week(2)
'Tuesday'
>>> week(0)
'Sunday'
>>> week(7)
'Invalid day of week'
>>> week(4.5)
'Invalid day of week'
0

Hãy tự mình thử »



Đã đăng vào Mar 22nd, 2019 8:46 a.m. 1 phút đọc 1 phút đọc

1 Giới thiệu.

Khi mình tìm hiểu python ta đã thấy một điều quái lạ là vì sao python không định nghĩa các function switch case cho dev? Mình đã băn khoăn điều đó và tìm hiểu vì sao và làm sao để sử dung switch case như các ngôn ngữ khác c++, ruby, ++.

2. Python Switch Case Statemen

Python không có cấu trúc switch case đơn giản. Nếu bạn đến từ nền tảng của c++, java, ruby,.. thì bạn sẽ thấy điều này có vẻ hơi kỳ quặc.

Nếu như ở trong c++ hoặc java sẽ có cấu trúc kiểu kiểu dạng này :

string week(int i){
       switch(i){
               case 0:
                       returnSundaybreak;
               case 1:
                       returnMondaybreak;
               case 2:
                       returnTuesdaybreak;
               case 3:
                       returnWednesdaybreak;
               case 4:
                       returnThursdaybreak;
               case 5:
                       returnFridaybreak;
               case 6:
                       returnSaturdaybreak;
               default:
                       returnInvalid day of week”

Nhưng python không như trên. Vậy để có thể được như trên Python cần sử dụng cấu trúc dict để thực hiện khi gặp trường hợp cần thiết.

3. Phương pháp tạo Switch Case Statement trong Python

Ngoài việc dùng các cấu trúc sẵn có if-else-other. Thay vào đó chúng ta sử dụng một dict để ánh xạ đến các case, các chức năng. Ở đâ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:

def week(i):
        switcher={
                0:'Sunday',
                1:'Monday',
                2:'Tuesday',
                3:'Wednesday',
                4:'Thursday',
                5:'Friday',
                6:'Saturday'
             }
         return switcher.get(i,"Invalid day of week")

Và bây giờ chúng ta có thể hiểu function week như một switch case trong Python. Và nó được gọi như sau để thực hiện.

>>> week(2)
'Tuesday'
>>> week(0)
'Sunday'
>>> week(7)
'Invalid day of week'
>>> week(4.5)
'Invalid day of week'

a. Sử dụng Python Functions & Lambdas

Chúng ta cũng có thể sử dụng function và lambdas trong dict.

>>> def zero():
        return 'zero'
>>> def one():
        return 'one'
>>> def indirect(i):
        switcher={
                0:zero,
                1:one,
                2:lambda:'two'
                }
           func=switcher.get(i,lambda :Invalid)
           return func()
>>> indirect(4)Invalid>>> indirect(2)
'two'
>>> indirect(1)
'one'
>>> indirect(0.5)
'Invalid'

b. Thông qua Classes

Sử dụng class chó phép chúng ta chọn method ở thời điểm runtime.

>>> class Switcher(object):
          def indirect(self,i):
                   method_name='number_'+str(i)
                   method=getattr(self,method_name,lambda :'Invalid')
                   return method()
def number_0(self):
          return 'zero'
def number_1(self):
          return 'one'
def number_2(self):
          return 'two'
>>> s=Switcher()
>>> s.indirect(2)
'two'
>>> s.indirect(4)
'Invalid'
>>> s.number_1()
'one'

Tham khảo.

https://data-flair.training/blogs/python-switch-case/

All rights reserved