Tại sao trường hợp chuyển đổi không được sử dụng trong python?

Python là một ngôn ngữ lập trình thông dịch được thiết kế bởi Guido Van Rossum vào năm 1991. Python là ngôn ngữ có mục đích chung có cú pháp đơn giản so với ngôn ngữ lập trình khác

Hầu hết các ngôn ngữ lập trình đều có câu lệnh switch hoặc case cho phép bạn thực thi các khối mã khác nhau dựa trên một biến. Nhưng Python có câu lệnh Switch không?

Trong bài viết này, chúng ta sẽ thảo luận về Switch Case trong Python, một tính năng mới được gọi là match case với một ví dụ, cách sử dụng và 3 phương pháp khác để triển khai nó bằng mã. Vậy hãy bắt đầu

Câu lệnh Switch là gì?

Trong lập trình máy tính, câu lệnh trường hợp chuyển đổi là một loại hệ thống điều khiển lựa chọn được sử dụng để cho phép giá trị của biến thay đổi luồng điều khiển thực thi chương trình. Câu lệnh switch case tương tự như câu lệnh 'if' trong bất kỳ ngôn ngữ lập trình nào

Câu lệnh trường hợp chuyển đổi là sự thay thế của 'nếu. câu lệnh khác trong bất kỳ chương trình nào khi chúng ta biết rằng các lựa chọn sẽ là số nguyên hoặc ký tự bằng chữ. Những lợi thế của việc sử dụng Tuyên bố trường hợp chuyển đổi trong chương trình như được đưa ra dưới đây

  1. Nó dễ dàng hơn để gỡ lỗi
  2. Việc đọc chương trình cho bất kỳ ai ngoại trừ lập trình viên sẽ dễ dàng hơn
  3. Nó dễ hiểu hơn và cũng dễ bảo trì hơn
  4. Việc xác minh tất cả các giá trị cần kiểm tra đều được xử lý dễ dàng hơn
  5. Nó làm cho mã ngắn gọn

Cần tuyên bố trường hợp chuyển đổi

Trong khi lập trình, có những lúc chúng ta cần thực thi một khối mã cụ thể tùy thuộc vào một số tình huống khác. Nếu tình huống đã cho không thỏa mãn, khối mã sẽ bị bỏ qua và không được thực thi

Nếu chúng ta kiểm tra và áp dụng các khối mã này theo cách thủ công mà không có bất kỳ định dạng nào, thì độ dài và độ phức tạp của mã sẽ tăng lên.  

Câu lệnh chuyển đổi là một công cụ hữu ích để kiểm tra một biến dựa trên một số giá trị có thể và thực hiện các hướng dẫn khác nhau dựa trên kết quả. Nó thường là một cải tiến để thêm một câu lệnh chuyển đổi vào một chương trình

Câu lệnh Switch trong C++/Java

Trước khi chuyển sang tìm hiểu các lựa chọn thay thế của trường hợp chuyển đổi trong ngôn ngữ python và các cách khác nhau để triển khai nó, trước tiên chúng ta hãy hiểu câu lệnh trường hợp chuyển đổi trong ngôn ngữ C ++ hoặc Java

Trong câu lệnh switch case, biến được so sánh với danh sách các giá trị. Giá trị này được gọi là giá trị trường hợp và trình biên dịch tiếp tục kiểm tra giá trị đã cho với tất cả các trường hợp cho đến khi khớp xảy ra

Cú pháp của câu lệnh switch case trong C++ như dưới đây

switch[expression] {
   case constant-expression  :
      statement[s];
      break; //optional
   case constant-expression  :
      statement[s];
      break; //optional
  
   // multiple number of case statement is allowed 
   default : //Optional
      statement[s];
}

 

Giải thích về mã.  

  • Sự biểu lộ. Nó phải là một loại tích phân hoặc loại liệt kê
  • biểu thức không đổi. Biểu thức hằng phải có cùng kiểu dữ liệu với biến được so sánh và nó cũng phải là hằng hoặc hằng
  • Phá vỡ. Câu lệnh break được sử dụng để kết thúc câu lệnh switch nếu giá trị trường hợp khớp với giá trị biến. Sau câu lệnh break, điều khiển luồng của chương trình sẽ chuyển sang dòng mã tiếp theo ngay sau câu lệnh switch case
  • Mặc định. Trường hợp mặc định được sử dụng trong câu lệnh chuyển đổi cho trường hợp không có trường hợp nào được thực thi. Khai báo trường hợp mặc định là tùy chọn.                                                                                                    

Python có câu lệnh Switch không?

Có, Python có chức năng Switch case. Kể từ Python 3. 10, giờ đây chúng ta có thể sử dụng cú pháp mới để triển khai loại chức năng này với trường hợp đối sánh. Câu lệnh khớp trường hợp cho phép người dùng triển khai chính xác các đoạn mã để chuyển đổi trường hợp

Nó có thể được sử dụng để truyền biến để so sánh và các câu lệnh trường hợp có thể được sử dụng để xác định các lệnh sẽ thực thi khi một trường hợp khớp

Làm cách nào để sử dụng trường hợp đối sánh trong Python?

Câu lệnh khớp trường hợp bao gồm một loạt các khối trường hợp, mỗi khối chỉ định một mẫu để khớp với giá trị. Nếu tìm thấy khớp, khối mã tương ứng sẽ được thực thi. Nếu không tìm thấy kết quả phù hợp, một khối mặc định tùy chọn có thể được sử dụng để chỉ định một hành động mặc định

Python đã thêm tính năng này với 3. 10 phát hành vào tháng 10 năm 2021 trong "Structural Pattern Matching". Nó có thể được triển khai theo cách tương tự như chúng ta làm trong C, Java hoặc Javascript. Lệnh trường hợp phù hợp dễ dàng hơn và mạnh mẽ hơn

Nó bao gồm 2 thành phần chính

  1. Từ khóa “phù hợp”
  2. [Các] mệnh đề tình huống với mỗi điều kiện/tuyên bố

Một mẫu khớp với biến, một điều kiện xác định xem mẫu có khớp hay không và một loạt các câu lệnh sẽ được thực thi nếu mẫu khớp tạo thành mệnh đề trường hợp

Đối với nhiều kết quả tiềm năng của một biến nhất định, chúng ta có thể tạo nhiều câu lệnh tình huống. Một mẫu phải được khớp trong mỗi câu lệnh tình huống

Hãy xem làm thế nào để thực hiện nó

cú pháp

match subject:
    case :
        
    case :
        
    case :
        
    case _:
        

 

Ví dụ

user_input = int[input["enter your lucky number between 1-5\n"]]

match user_input:

        case 1:

         print[ "you will have a new house"]

        case 2:

         print[ "you will receive good news "]

        case 3:

         print[ "you will get a car"]

        case 4:

         print[ "you might face your fear this week"]

        case 5:

         print[ "you will get a pet"]

 

đầu ra

enter your lucky number between 1-5
5
you will get a pet

 

Các lựa chọn thay thế khác

Chúng tôi cũng có thể sử dụng 3 thay thế khác nhau để thực hiện trường hợp chuyển đổi python

  1. If-elif-else
  2. ánh xạ từ điển
  3. Sử dụng các lớp

Hãy để chúng tôi hiểu từng cú pháp chuyển đổi python một cách chi tiết dưới đây

Phương pháp 01] If-elif-else

If-elif là lối tắt cho chuỗi if-else if-else. Chúng ta có thể sử dụng câu lệnh if-elif và thêm câu lệnh khác vào cuối, câu lệnh này được thực hiện nếu không có câu lệnh if-elif nào ở trên là đúng. Chuỗi if-elif cho phép bạn xử lý nhiều điều kiện bên trong một khối

Ví dụ

# if-elif statement example 

fruit = 'Banana'

if fruit == 'Mango': 
    print["letter is Mango"] 

elif fruit == "Grapes": 
    print["letter is Grapes"] 

elif fruit == "Banana": 
    print["fruit is Banana"] 

else: 
    print["fruit isn't Banana, Mango or Grapes"] 

 

đầu ra

fruit is Banana

 

Phương pháp 02] Ánh xạ từ điển

Nếu bạn biết ngôn ngữ python cơ bản thì bạn phải làm quen với từ điển và mô hình lưu trữ một nhóm đối tượng trong bộ nhớ bằng các cặp khóa-giá trị. Vì vậy, khi chúng ta sử dụng từ điển để thay thế câu lệnh Switch case, giá trị khóa của kiểu dữ liệu từ điển sẽ hoạt động như các trường hợp trong câu lệnh switch

Ví dụ

# Implement Python Switch Case Statement using Dictionary

def monday[]:
    return "monday"
def tuesday[]:
    return "tuesday"
def wednesday[]:
    return "wednesday"
def thursday[]:
    return "thursday"
def friday[]:
    return "friday"
def saturday[]:
    return "saturday"
def sunday[]:
    return "sunday"
def default[]:
    return "Incorrect day"

switcher = {
    1: monday,
    2: tuesday,
    3: wednesday,
    4: thursday,
    5: friday,
    6: saturday,
    7: sunday
    }

def switch[dayOfWeek]:
    return switcher.get[dayOfWeek, default][]

print[switch[3]]
print[switch[5]]

 

đầu ra

wednesday
friday

 

Phương pháp 03] Sử dụng các lớp

Cùng với các phương thức trên để triển khai câu lệnh switch case trong ngôn ngữ python, chúng ta cũng có thể sử dụng các lớp python để triển khai câu lệnh switch case. Một hàm tạo đối tượng có các thuộc tính và phương thức được gọi là một lớp

Vì vậy, chúng ta hãy xem ví dụ về việc thực hiện trường hợp chuyển đổi bằng cách sử dụng lớp bằng cách tạo phương thức chuyển đổi bên trong lớp chuyển đổi python

Ví dụ

________số 8_______

 

đầu ra

monday
wednesday

 

Nếu bạn cần thêm trợ giúp, bạn có thể liên hệ với các gia sư python chuyên nghiệp của chúng tôi

Phần kết luận

Trong blog này, chúng tôi đã nghiên cứu cách triển khai Switch Case trong lập trình Python. Bây giờ bạn cũng code cho trường hợp switch python để tự làm thử. Rất khuyến khích sử dụng nó vì nó làm tăng hiệu quả mã hóa và dễ thực hiện hơn

Chúng ta có thể sử dụng trường hợp chuyển đổi trong Python không?

Không giống như mọi ngôn ngữ lập trình khác mà chúng ta đã sử dụng trước đây, Python không có câu lệnh switch hoặc case .

Tại sao chuyển đổi không có trong Python?

Đại khái lý do là các đề xuất khác nhau không đáp ứng được kỳ vọng của mọi người về tác dụng của trường hợp chuyển đổi và chúng không cải thiện được các giải pháp hiện có [like dictionary-based dispatch, if-elif-chains, getattr-based dispatch, or old-fashioned polymorphism dispatch to objects with differing ...

Tại sao chúng ta không nên sử dụng switch case?

Nhưng có một số nhược điểm khi sử dụng chúng. Chúng hoạt động hiệu quả trong quá trình tạo nhóm trường hợp ban đầu của bạn, nhưng khi bạn phải mở rộng chúng, chúng sẽ trở nên khó xử lý và làm phình mã của bạn . Hơn nữa, khi bạn muốn ánh xạ các kịch bản phức tạp, trường hợp chuyển đổi là một mớ hỗn độn.

Nhược điểm của switch case là gì?

Biến trường hợp chuyển đổi chỉ có thể có kiểu dữ liệu int và char . Vì vậy, float hoặc không có kiểu dữ liệu nào được phép. Trong ch này có thể là số nguyên hoặc ký tự và không thể là float hoặc bất kỳ kiểu dữ liệu nào khác.

Chủ Đề