Trường hợp chuyển đổi là một phương pháp lựa chọn trường hợp trong bất kỳ ngôn ngữ lập trình nào. Trong đó một phần tử được so khớp với một tập hợp có cùng loại phần tử. Nếu tìm thấy khớp thì thực hiện nếu không thì hành động mặc định được thực hiện
Trường hợp chuyển đổi trong tất cả các ngôn ngữ lập trình có cấu trúc giống như
cú pháp
function(element){ case1(match1): action1 break; case2(match2): action2 break; Default(): action }Vỏ công tắc có bao diêm
Với từ khóa python, trường hợp chuyển đổi trường hợp khớp có thể được triển khai
cú pháp
def function(element): match element: Case1 match1 : action1 Case2 match2 : action2 Case3 match3 : actionMã số
def fun(element): match element: case "1": print("One") case "2": print("Two") case "3": print("Three") case _: print("No match") # Initialization of variable x x = "2" print("Number is", fun(x))đầu ra
Chuyển đổi trường hợp với nếu khác
Trường hợp chuyển đổi có thể được thực hiện với sự trợ giúp của thang if-else. Mỗi trường hợp được thực hiện bên trong điều kiện của từng trường hợp if
cú pháp
def function(element): if(condition1) : action1 elseif(condition2): action2 else : action3Mã số
def fun(ele): if x=='a': print("a") elif x=='b': print("b") elif x=="c": print("c") else: print("NO Match") x='b' print("char is:") fun(x)đầu ra
Đổi trường hợp với từ điển
Các trường hợp chuyển đổi có thể được triển khai với kiểu dữ liệu từ điển. Tất cả các trường hợp được thực hiện bên trong từ điển. Các trường hợp được khớp với các khóa của từ điển
cú pháp
dictionary = { match1 : action1, match2 : action2, match3 : action3 } def function(element): return dictionary.get(element,”NO Match”)Mã số
def a(): return "a" def b(): return "b" def c(): return "c" def default(): return "No match" dic = { 'a':a, 'b':b, 'c':c } def fun(ele): return dic.get(ele,default)() x='b' print("Char is:") print(fun(x))đầu ra
Chuyển trường hợp với python lambda
Chuyển đổi có thể được thực hiện với lambda trong python. Nó chủ yếu được sử dụng trong trường hợp chúng ta phải triển khai chức năng động trong trường hợp chuyển đổi. Hành động của trường hợp thay đổi theo đầu vào đã cho
Mã số
def fun(oper,element): result={ '+':lambda element: element+2, '-':lambda element: element-2, '*':lambda element: element*2, '/':lambda element: element/2 } return result.get(oper,"NO match")(element) x='+' y=3 print("3+2") print(fun(x,y))đầu ra
Chuyển đổi trường hợp với các lớp học
Trường hợp chuyển đổi có thể được thực hiện với các lớp và hàm getattr
Mã số
________số 8_______đầu ra
Phần kết luận
Chúng tôi hy vọng bài viết này đã cung cấp cho bạn một ý tưởng rõ ràng về cách sử dụng các từ khóa khớp trường hợp trong python để triển khai các trường hợp chuyển đổi (như chúng ta biết trong các ngôn ngữ lập trình khác). Bốn cách để triển khai các trường hợp chuyển đổi với bậc thang if-else, từ điển, python lambda và các lớp
Trường hợp khớp dễ sử dụng hơn và đơn giản hơn trong Python so với bậc thang if-else. Do đó, chúng tôi sử dụng câu lệnh chuyển đổi python vì nó giúp mã dễ dàng, phát triển nhanh, tăng khả năng đọc và dễ tìm lỗi so với bậc thang if other
Trong hướng dẫn Python cuối cùng của chúng tôi, chúng tôi đã nghiên cứu Xử lý XML trong Python 3. Hôm nay, chúng ta sẽ nghiên cứu Cách triển khai Python Switch Case Statement.
Không giống như các ngôn ngữ khác như Ngôn ngữ lập trình Java và C++, Python không có cấu trúc trường hợp chuyển đổi. Cùng với điều này, chúng ta sẽ xem cách khai thác lỗ hổng cho câu lệnh trường hợp chuyển đổi Python
Vì vậy, hãy thảo luận về các cách triển khai khác nhau cho Tuyên bố trường hợp chuyển đổi Python
2 cách đơn giản để triển khai câu lệnh chuyển đổi trường hợp Python
Tuyên bố trường hợp chuyển đổi Python là gì?
Python không có cấu trúc trường hợp chuyển đổi đơn giản. Xuất phát từ nền tảng Java hoặc C++, bạn có thể thấy điều này hơi kỳ quặc
Trong C ++ hoặc Java, chúng tôi có một cái gì đó như thế này
string week(int i){ switch(i){ case 0: return “Sunday” break; case 1: return “Monday” break; case 2: return “Tuesday” break; case 3: return “Wednesday” break; case 4: return “Thursday” break; case 5: return “Friday” break; case 6: return “Saturday” break; default: return “Invalid day of week” } }Nhưng Python không có cái này
Vì vậy, để giải quyết vấn đề này, chúng tôi sử dụng cấu trúc từ điển tích hợp sẵn của Python để triển khai các trường hợp và quyết định phải làm gì khi gặp trường hợp đó
Chúng tôi cũng có thể chỉ định phải làm gì khi không đáp ứng
Giải pháp cho Tuyên bố trường hợp chuyển đổi Python
Một lối thoát là triển khai thang if-elif-else. Thay vào đó, chúng ta có thể sử dụng từ điển để ánh xạ các trường hợp theo chức năng của chúng
Ở đây, chúng ta định nghĩa một hàm week() để cho chúng ta biết một ngày nhất định trong tuần là ngày nào. Trình chuyển đổi là một từ điển thực hiện ánh xạ này
>>> 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")Bây giờ, chúng tôi thực hiện các cuộc gọi đến tuần() với các giá trị khác nhau
>>> week(2)đầu ra
'Thứ ba'
>>> week(0)đầu ra
'Chủ nhật'
>>> week(7)đầu ra
'Ngày không hợp lệ trong tuần'
>>> week(4.5)đầu ra
'Ngày không hợp lệ trong tuần'
Như bạn có thể thấy, đối với các giá trị khác với giá trị mà chúng tôi đề cập trong trình chuyển đổi, nó sẽ in ra “Ngày trong tuần không hợp lệ”. Điều này là do chúng tôi yêu cầu nó làm như vậy bằng cách sử dụng phương thức get() của từ điển
a. Sử dụng Hàm Python và Lambdas
Chúng ta cũng có thể sử dụng các hàm và lambdas trong từ điển
>>> 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)đầu ra
'Không hợp lệ'
>>> indirect(2)đầu ra
'hai'
>>> indirect(1)đầu ra
'một'
>>> indirect(0.5)đầu ra
'Không hợp lệ'
b. Với các lớp Python
Sử dụng khái niệm này với các lớp cho phép chúng tôi chọn một phương thức trong thời gian chạy
>>> 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đầu ra
'hai'
>>> 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")1đầu ra
'Không hợp lệ'
>>> 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đầu ra
'một'
Vì vậy, đây là tất cả về Tuyên bố trường hợp chuyển đổi Python. Hy vọng bạn thích hướng dẫn của chúng tôi
Câu hỏi phỏng vấn Python về Tuyên bố trường hợp chuyển đổi
- Python có câu lệnh trường hợp chuyển đổi không?
- Làm cách nào để triển khai trường hợp chuyển đổi trong Python?
- Trường hợp trong câu lệnh switch trong Python là gì?
- Giải thích câu lệnh trường hợp chuyển đổi Python với ví dụ
- Bạn có thể có bao nhiêu trường hợp trong câu lệnh switch trong Python?
Phần kết luận
Do đó, chúng tôi kết luận rằng Python không có cấu trúc trường hợp chuyển đổi tích hợp, thay vào đó chúng tôi có thể sử dụng từ điển
Hơn nữa, nếu bạn có bất kỳ câu hỏi nào liên quan đến Báo cáo trường hợp chuyển đổi Python, vui lòng hỏi trong phần nhận xét