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'
________số 8đầ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?
Sự 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