Làm cách nào để tạo công tắc trong Python?

Nhìn vào từ 'công tắc', bạn có nhớ công tắc được sử dụng để bật và tắt thiết bị không?

Trong một ngôn ngữ lập trình, switch là một câu lệnh ra quyết định. Trong bài viết này, chúng ta sẽ tìm hiểu hoạt động của switch case và cách triển khai nó trong Python. Vì vậy, chúng ta hãy bắt đầu với phần giới thiệu về công tắc

Giới thiệu về Python Switch

Như đã nói ở trên, công tắc là một cấu trúc có thể được sử dụng để thực hiện luồng điều khiển trong chương trình. Nó có thể được sử dụng thay thế cho các câu lệnh if-else hoặc thang elif khi chúng ta có một biến/một biểu thức duy nhất mà chúng ta sử dụng để đưa ra quyết định

Sử dụng điều này thay vì nhiều câu lệnh if-else làm cho mã trông sạch hơn, nhanh hơn và dễ đọc hơn. Nó hoạt động bằng cách thực thi khối mã theo trường hợp tương ứng thỏa mãn

Chúng ta hãy xem xét nhiều hơn về công việc trong phần tiếp theo

Hoạt động của Switch Case trong Python

Các câu lệnh chuyển đổi chủ yếu bao gồm điều kiện và các trường hợp khác nhau được kiểm tra để tạo điều kiện. Nó nhận một giá trị hoặc một biến hoặc một biểu thức làm đầu vào

Mỗi trường hợp tương ứng với một giá trị cụ thể. Nó kiểm tra xem có bất kỳ trường hợp nào bằng với đầu vào hay không và dựa trên [các] câu lệnh tương ứng đó được [được] thực thi. Nó cũng cho phép chúng ta viết một trường hợp mặc định, trường hợp này được thực thi nếu không có trường hợp nào là Đúng

Chúng ta hãy xem một ví dụ kiểm tra ngày trong tuần dựa trên số đã cho để biết hoạt động của câu lệnh switch. Nó lấy số làm đầu vào và kiểm tra nó với từng trường hợp cho đến khi đạt đến trường hợp Đúng

Bắt đầu từ 0 đến 6, nó sẽ kiểm tra cho đến khi số bằng một trong các giá trị này. Và tại một thời điểm nếu nó khớp, ngày tương ứng trong tuần sẽ được in. Nếu không có trường hợp nào phù hợp, thì nó sẽ thực thi trường hợp mặc định và in thông tin đầu vào không hợp lệ

Nhìn vào lưu đồ bên dưới để hiểu thêm về hoạt động của các vòng lặp

Không giống như các ngôn ngữ lập trình khác như C, C++, Java, v.v. , trong Python, không có cấu trúc chuyển đổi tích hợp. Nhưng nó cho phép chúng tôi triển khai các câu lệnh chuyển đổi bằng cách sử dụng các câu lệnh khác theo những cách khác nhau. Chúng ta có thể sử dụng những điều sau đây để làm như vậy
1. một cuốn từ điển
2. một lớp học

Triển khai Switch trong Python bằng thang elif

Trước khi sử dụng các cấu trúc khác, trước tiên, chúng ta hãy sử dụng thang elif để thực hiện điều khiển công tắc. Đoạn mã sau đây cho thấy một ví dụ về việc đưa ra đầu ra dưới dạng số bằng chữ

Ví dụ triển khai switch case sử dụng thang elif

def num_in_words[no]:
    if[no==1]:
        print["One"]
    elif[no==2]:
        print["Two"]
    elif[no==3]:
        print["Three"]
    else:
        print["Give input of numbers from 1 to 3"]

    
num_in_words[3]

num_in_words[4.5]

đầu ra

Số ba

Nhập các số từ 1 đến 3

Ở đây, khi chúng ta gọi hàm, thang elif được thực thi. Và số đưa ra làm đầu vào được kiểm tra với các điều kiện trong ngoặc và khối tương ứng được thực thi khi điều kiện được đáp ứng. Nếu không có điều kiện nào thỏa mãn, khối khác sẽ thực thi, yêu cầu đưa ra các số chính xác

Triển khai Python Switch bằng Từ điển

Chúng ta có thể sử dụng một từ điển để thực hiện trường hợp chuyển đổi. Chúng tôi biết rằng từ điển chứa các cặp khóa-giá trị. Nó có thể có các khóa là điều kiện/phần tử được kiểm tra và các giá trị là phần tử được in hoặc các chức năng được thực thi

Sử dụng các phần tử làm giá trị của từ điển

Chúng ta có thể sử dụng các phần tử được in làm giá trị của từ điển và sử dụng hàm get[] để lấy giá trị tương ứng của một khóa

Đoạn mã sau đây cho thấy một ví dụ về việc in một nguyên âm tương ứng

Ví dụ về việc triển khai trường hợp chuyển đổi bằng từ điển

def vowel[num]:
    switch={
      1:'a',
      2:'e',
      3:'i',
      4:'o',
      5:'u'
      }
    return switch.get[num,"Invalid input"]

vowel[3]

vowel[0]

đầu ra

'Tôi'

'Đâu vao không hợp lệ'

Ở đây khi chúng ta gọi hàm bằng cách nhập một số làm đầu vào, thì nó sẽ thực thi từ điển và câu lệnh trả về. Câu lệnh return chứa hàm get[] của từ điển, hàm này xuất giá trị của khóa tương ứng. Ở đây chìa khóa là số

Đối số thứ hai của get[] là giá trị mặc định được trả về khi không tìm thấy khóa. Vì vậy, nó trả về "Đầu vào không hợp lệ" nếu số không nằm trong khoảng từ 1 đến 5

Sử dụng hàm/hàm lambda làm giá trị của từ điển

Chúng ta cũng có thể sử dụng các hàm làm giá trị của từ điển. Sau đó, chúng ta có thể sử dụng get[] của từ điển để gọi hàm cụ thể đó. Điều này sẽ giúp chúng ta viết nhiều thao tác sử dụng switch hơn là chỉ in một phần tử khi tìm khóa khớp

Đoạn mã sau đưa ra một ví dụ về việc sử dụng các hàm để thực hiện một thao tác cụ thể dựa trên toán hạng đầu vào

Ví dụ về triển khai trường hợp chuyển đổi bằng từ điển với các hàm là giá trị

def add[]:
    return n+m

def subs[]:
    return n-m

def prod[]:
    return n*m

def div[]:
    return m/n

def rem[]:
    return m%n

def operations[op]:
    switch={
       '+': add[],
       '-': subs[],
       '*': prod[],
       '/': div[],
       '%': rem[],
       }
    return switch.get[op,'Choose one of the following operator:+,-,*,/,%']

operations['*']

operations['^']

đầu ra

36

‘Chọn một trong các toán tử sau. +,-,*,/,%'

Ở đây quy trình tương tự như trong trường hợp khi chúng tôi in một giá trị trong trường hợp trước. Khi chúng ta gọi hàm là 'hoạt động' bằng cách đưa toán tử làm đầu vào, từ điển và các câu lệnh trả về được thực thi

Và hàm get[]] trong câu lệnh return kiểm tra khóa, ở đây là toán tử và gọi các hàm tương ứng. Sau đó xuất giá trị được trả về bởi hàm tương ứng

Nếu không tìm thấy khóa, nó sẽ in ra để chọn các toán tử trong từ điển, được đưa ra làm đối số thứ hai

Triển khai Python Switch bằng Class

Bên cạnh việc sử dụng từ điển, chúng ta cũng có thể sử dụng các lớp Python để triển khai cấu trúc chuyển đổi. Các lớp nói một cách đơn giản là tập hợp các biến và hàm hoạt động như một đơn vị. Chúng ta có thể định nghĩa một lớp bằng cách sử dụng từ khóa 'lớp'

Đoạn mã dưới đây cho thấy một ví dụ về việc thực hiện chuyển đổi để lấy con bướm đêm đã cho số, sử dụng lớp

Ví dụ về việc triển khai trường hợp chuyển đổi bằng cách sử dụng lớp

class Month[object]:
    def month_1[self]:
        print["January"]
    def month_2[self]:
        print["February"]
    def month_3[self]:
        print["March"]
    def month_4[self]:
        print["April"]
    def month_5[self]:
        print["May"]
    def month_6[self]:
        print["June"]
    def month_7[self]:
        print["July"]
    def month_8[self]:
        print["August"]
    def month_9[self]:
        print["September"]
    def month_10[self]:
        print["October"]
    def month_11[self]:
        print["November"]
    def month_12[self]:
        print["December"]
    def getMonth[self,no]:
        name_of_method="month_"+str[no]
        method=getattr[self,name_of_method,lambda :'Give an input as an integer from 1 to 12']
        return method[]

  
mo=Month[]
mo.getMonth[5]

mo.getMonth[0.5]

đầu ra

Có thể

'Cho đầu vào là số nguyên từ 1 đến 12'

Ở đây một chức năng được xác định cho mỗi tháng. Và chức năng 'getMonth[]' có nội dung chính của những gì chúng ta muốn triển khai. Hàm này lấy một số làm đầu vào và kết hợp nó với chuỗi 'tháng_' để có tên hàm tương ứng. Phương thức được gọi bằng cách sử dụng phương thức 'getattr[]' để gọi hàm cụ thể. Sau đó, chúng tôi trả về đầu ra của hàm được gọi

Nếu hàm không khả dụng, thì chúng ta gọi hàm mặc định được cung cấp làm đối số thứ hai cho 'getattr[]'. Ở đây chúng tôi đã đưa ra một hàm lambda yêu cầu cung cấp đầu vào chính xác

Câu hỏi phỏng vấn trên Python Switch

Q1. Viết chương trình switch case để kiểm tra xem một chữ cái có phải là nguyên âm không

trả lời. Chúng ta có thể viết các nguyên âm dưới dạng khóa của từ điển và giá trị dưới dạng chuỗi 'Đó là một nguyên âm'. Và trường hợp mặc định in nó không phải là nguyên âm

Ví dụ kiểm tra xem một chữ cái có phải là nguyên âm hay không

def operations[letter]:
    switch={
       'a': "It is a vowel",
       'e': "It is a vowel",
       'i': "It is a vowel",
       'o': "It is a vowel",
       'u': "It is a vowel",
       }
    return switch.get[letter,"It is a not a vowel"]

operations['a']

đầu ra

'Đó là một nguyên âm'

'Đó không phải là một nguyên âm'

quý 2. Viết chương trình kiểm tra xem hàm này dương hay âm hay bằng không

trả lời. Ta có thể viết hàm kiểm tra dấu của số. Trong chức năng này, trước tiên chúng ta có thể kiểm tra xem số đó có phải là một chữ số hay không bằng cách sử dụng hàm tích hợp isdidigt[], để tránh lỗi. Sau đó, chúng ta có thể gọi hàm đó trong phương thức get[] và dựa trên đầu ra của hàm này, chúng ta có thể viết các trường hợp chuyển đổi

Ví dụ kiểm tra dấu của một số

def sign[n]:
    if[~n.isdigit[]]:
        return ""
    if n>0:
        return 'p'
    if n0]
in ["Tích cực"]
yêu tinh[num

Chủ Đề