Trường hợp chuyển đổi có sẵn trong Python không?

Python Switch Case là một câu lệnh điều khiển lựa chọn. Biểu thức chuyển đổi được đánh giá một lần. Giá trị của biểu thức được so sánh với các giá trị của từng trường hợp; . Không giống như các ngôn ngữ khác, Python không có các câu lệnh chuyển đổi trường hợp tích hợp, vì vậy chúng tôi phải triển khai chúng bằng các phương thức khác nhau. Tất cả các phương pháp này được giải thích trong bài viết. Cùng đọc để biết thêm

Phạm vi

  • Chúng ta sẽ tìm hiểu switch case là gì
  • Chúng ta sẽ xem xét các cách khác nhau mà chúng ta có thể triển khai các trường hợp chuyển đổi trong chương trình của mình
  • Chúng ta sẽ đi qua các ứng dụng thực tế của switch case với các ví dụ

Giới thiệu về Vỏ chuyển đổi Python

Bạn đã bao giờ tự hỏi làm thế nào một chương trình điều khiển bằng menu [Một chương trình nhận thông tin đầu vào từ người dùng bằng cách hiển thị danh sách các tùy chọn] hoạt động chưa? . Với mục đích này, chúng ta phải sử dụng các câu lệnh Chuyển đổi trường hợp Python. Cùng đọc để biết thêm

Switch Case trong Python là gì?

if đưa ra quyết định dựa trên việc điều kiện có đúng hay không. Nếu điều kiện là đúng, nó sẽ đánh giá biểu thức thụt lề; . Khi chúng ta cần chạy một số điều kiện, bạn có thể đặt bao nhiêu điều kiện elif cần thiết giữa điều kiện if và điều kiện khác. Các câu lệnh chuyển đổi trường hợp thay thế cho các câu lệnh if dài so sánh một biến với một số giá trị tích phân

  • Câu lệnh switch là một câu lệnh rẽ nhánh nhiều chiều. Nó cung cấp một cách dễ dàng để gửi thực thi đến các phần mã khác nhau dựa trên giá trị của biểu thức
  • Switch là một câu lệnh điều khiển cho phép một giá trị thay đổi điều khiển thực thi

Nhưng unline các ngôn ngữ khác nhau; . Đọc để tìm hiểu thêm về cách chúng ta có thể sử dụng các câu lệnh chuyển đổi trường hợp trong python

Lưu đồ này cho thấy rõ ràng hoạt động của trường hợp chuyển đổi. Điều này cho thấy rằng, trước hết, các điều kiện được kiểm tra từng cái một và sau đó, nếu không có câu lệnh nào đúng, thì câu lệnh mặc định sẽ được triển khai

Làm cách nào để triển khai Trường hợp chuyển đổi Python?

Không giống như C++/Java, python không có sẵn câu lệnh Switch Case. Có một số phương pháp thay thế mà chúng ta có thể triển khai các câu lệnh Switch Case trong python. Những phương pháp này là

1. Với sự giúp đỡ của từ điển

  • Bằng cách sử dụng các chức năng
  • Bằng cách sử dụng Lambdas

2. Với sự giúp đỡ của các lớp

3. Với sự trợ giúp của câu lệnh if-elif-else

Chúng ta hãy xem từng phương pháp để triển khai câu lệnh trường hợp chuyển đổi python từng cái một với sự trợ giúp của các ví dụ. Cùng đọc để biết thêm

Trường hợp chuyển đổi Python bằng từ điển

Nếu bạn đã quen thuộc 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ách sử dụng các cặp khóa-giá trị. Vì vậy, khi chúng ta sử dụng Dictionary để 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. Hơn nữa, có hai cách khác nhau để triển khai Switch Case bằng Từ điển. đó là

Trường hợp chuyển đổi Python bằng cách sử dụng hàm

Khi chúng ta sử dụng Dictionary để thay thế câu lệnh Switch case, 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. Chúng ta cần định nghĩa một số hàm được coi là giá trị trong từ điển. Khi chúng ta gọi những giá trị này với sự trợ giúp của các phím, thì hàm cụ thể sẽ được gọi và chúng ta nhận được đầu ra mong muốn

Chúng tôi sẽ triển khai trường hợp chuyển đổi trong python bằng từ điển với sự trợ giúp của các hàm

Ví dụ

Trong ví dụ này, chúng tôi đang chuyển đổi một số thành tên số của nó

Mã số

def one[]:
    return "one"
def two[]:
    return "two"
def three[]:
    return "three"
def four[]:
    return "four"
def five[]:
    return "five"
def six[]:
    return "six"
def seven[]:
    return "seven"
def eight[]:
    return "eight"
def nine[]:
    return "nine"
def default[]:
    return "no spell exist"

numberSpell = {
    1: one,
    2: two,
    3: three,
    4: four,
    5: five,
    6: six,
    7: seven,
    8: eight,
    9: nine
    }

def spellFunction[number]:
    return numberSpell.get[number, default][]

print[spellFunction[3]]
print[spellFunction[10]]

đầu ra

Giải trình

  • Chúng tôi tạo các hàm khác nhau trả về tên số của số
  • Sau đó, chúng tôi tạo một từ điển trong đó chúng tôi đã lưu trữ các cặp khóa-giá trị khác nhau
  • Sau khi tạo Từ điển, chúng ta tạo chức năng chính, chức năng này nhận đầu vào của người dùng để tìm tên số
  • Cuối cùng, chúng ta đã gọi hàm để in đầu ra mong muốn

Trường hợp chuyển đổi Python bằng Lambdas

Chúng tôi sẽ thực hiện một trường hợp chuyển đổi trong python bằng từ điển với sự trợ giúp của các hàm lambda. Các hàm lambda là các hàm ẩn danh nhỏ có thể nhận n số tham số nhưng chỉ có một biểu thức duy nhất

Khi chúng ta sử dụng Dictionary để thay thế câu lệnh Switch case, 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. Chúng ta cần định nghĩa các hàm lambda ẩn danh, được coi là các giá trị trong từ điển. Khi chúng ta gọi những giá trị này với sự trợ giúp của các phím, hàm cụ thể sẽ được gọi và chúng ta nhận được đầu ra mong muốn

Hãy hiểu những điều cơ bản về hàm lambda

Cú pháp của Hàm Lambda

lambda parameters: expression

Chúng ta phải sử dụng từ khóa lambda để tạo hàm lambda; . tách chúng ra

Mã số

a = lambda number: number*10

print[a[2]]

đầu ra

Giải trình

  • Chúng tôi đã tạo một hàm lambda chấp nhận một tham số và trả về một biểu thức duy nhất, trả về một số bằng cách nhân nó với 10
  • Sau đó, chúng tôi in biến bằng cách chuyển một số cho nó
  • Cuối cùng, chúng tôi đã nhận được đầu ra mong muốn

Hãy chuyển sang ví dụ để hiểu cách chúng ta có thể sử dụng từ điển với sự trợ giúp của các hàm lambda để triển khai các câu lệnh trường hợp chuyển đổi trong python

Ví dụ

Trong ví dụ này, chúng tôi đang chuyển đổi một số thành tên số của nó

Mã số

def one[]:
    return "one"
def two[]:
    return "two"
def three[]:
    return "three"

def spellFunction[number]:
    numberSpell = {
        1: one,
        2: two,
        3: three,
        4: lambda: "four"
    }

    return numberSpell.get[number, lambda: "no number spell exist"][]

print[spellFunction[1]]
print[spellFunction[7]]

đầu ra

Giải trình

  • Chúng tôi tạo các hàm khác nhau trả về tên số của số
  • Sau đó, chúng tôi đã tạo chức năng chính trong đó chúng tôi đã tạo một từ điển trong đó chúng tôi lưu trữ các cặp khóa-giá trị khác nhau
  • Bên trong Từ điển, chúng tôi đã sử dụng hàm lambda
  • Hàm chính này trả về tên số của số nếu nó có sẵn trong Từ điển. Nếu không có thì nó sẽ trả về giá trị mặc định
  • Cuối cùng, chúng ta đã gọi hàm để in đầu ra mong muốn

Chuyển đổi trường hợp bằng các lớp Python

Chúng ta có thể sử dụng các Lớp Python để triển khai Switch Case trong python. Lớp trong python là sự kết hợp của các thuộc tính và phương thức. Hãy xem, với sự trợ giúp của ví dụ, cách chúng ta có thể triển khai các trường hợp chuyển đổi bằng cách sử dụng các lớp

Chúng ta phải sử dụng hàm getattr, được sử dụng để triển khai các trường hợp chuyển đổi bằng cách sử dụng các lớp. Hãy hiểu ngắn gọn về chức năng này

cú pháp

getattr[object, name, default]

Đây là cú pháp của getattr, chấp nhận ba tham số object, name và default. Tất cả ba tham số được giải thích dưới đây. Cùng đọc để biết thêm

Thông số

getattr chấp nhận ba tham số được sử dụng để thực hiện các câu lệnh có điều kiện [trường hợp chuyển đổi] bằng cách sử dụng các lớp. Các thông số này là

  1. đối tượng[THAM SỐ BẮT BUỘC]. tên đối tượng có thuộc tính được trả về
  2. tên[THAM SỐ BẮT BUỘC]. chuỗi chứa tên thuộc tính của đối tượng
  3. mặc định [TÙY CHỌN THAM SỐ]. nếu thuộc tính không có trong đối tượng, thì câu lệnh mặc định được trả về

Giá trị trả về

Hàm này trả về tên của các thuộc tính có trong đối tượng, cuối cùng cung cấp cho chúng ta đầu ra. Nếu thuộc tính không có, chúng tôi sẽ nhận được một giá trị mặc định

Ví dụ

Chúng tôi sẽ tạo một ví dụ trong đó chúng tôi đang kiểm tra xem chữ số đã nhập có phải là nhị phân hay không. Nếu là binary_0, hàm của chúng ta sẽ trả về 0 ở đầu ra. Mặt khác, nếu nó là nhị phân_1, hàm của chúng tôi sẽ trả về một dưới dạng đầu ra, nhưng nếu chữ số được nhập khác 0 & 1, thì mã của chúng tôi sẽ trả về không phải là chữ số nhị phân. Hãy viết mã ví dụ này để hiểu rõ hơn

Mã số

class binaryOrNot[]:
    def mainFunction[self, i]:
        method_name = 'binary_' + str[i]
        method = getattr[self, method_name, lambda: 'not a binary digit']
        return method[]
    def binary_0[self]:
        return 'zero'
    def binary_1[self]:
        return 'one'

binary = binaryOrNot[]
print[binary.mainFunction[1]]

đầu ra

Giải trình

  • Đầu tiên, chúng tôi đã tạo một lớp sẽ trả về cho chúng tôi xem đầu vào số có phải là nhị phân hay không
  • Sau đó, chúng tôi tạo các hàm khác nhau bên trong lớp để kiểm tra xem một số có phải là nhị phân hay không
  • Chúng tôi đã sử dụng phương thức getattr[], được sử dụng để kiểm tra các điều kiện
  • Sau đó, chúng tôi đã gọi lớp và sử dụng chức năng của nó để triển khai trường hợp chuyển đổi trong python

Trường hợp chuyển đổi Python bằng if-elif-else

Câu lệnh if…elif…else được sử dụng trong Python để ra quyết định và nó có thể được thay thế bằng trường hợp chuyển đổi trong python với tất cả các điều kiện chuyển đổi trong phần if & elif và điều kiện mặc định trong phần khác

if đưa ra quyết định dựa trên việc điều kiện có đúng hay không. Nếu điều kiện là đúng, nó sẽ đánh giá biểu thức thụt lề; . Khi chúng ta cần chạy một số điều kiện, bạn có thể đặt bao nhiêu điều kiện elif cần thiết giữa điều kiện if và điều kiện khác

cú pháp

if[condition]:
    statement
elif[condition]:
    statement
else:
    statement

Đây là chuỗi if-elif-else mà chúng ta phải chuyển điều kiện vào if & elif, và other là câu lệnh mặc định được thực thi nếu không có điều kiện nào ở trên là sai

Ví dụ

Giả sử bạn có một số được lưu trong biến và bạn phải kiểm tra xem một số có âm không, nằm trong khoảng từ 1-10 hay lớn hơn 10. Hãy viết mã vấn đề này

Mã số

number = 15

if [number < 0]:
    print['number is a negative number']
elif [1 

Chủ Đề