Hướng dẫn dùng python ternary python
Tenary operators (Toán tử ba ngôi) còn được gọi là các biểu thức điều kiện, là các toán tử thực hiện đánh giá một cái gì đó dựa trên một điều kiện “là đúng” hoặc “là sai” đã được xác định trước. Toán tử này đã được thêm vào Python trong phiên bản 2.5. Nó chỉ đơn giản là cho phép kiểm tra một điều kiện nào đó trong một dòng code duy nhất, thay vì phải sử dụng nhiều chuỗi if-else, giúp cho code chở nên gọn gàng hơn. Show
Cú pháp
1. Phương pháp đơn giản để sử dụng tenary operator
Kết quả in ra là:
2. Phương pháp trực tiếp bằng cách sử dụng tuple, kiểu Dictionary và lambda
Kết quả in ra là:
3. Tenary operator có thể được viết dưới dạng các các chuỗi if-else lồng nhau
Cách tiếp cận sử dụng nested tenary operator ở trên có thể được viết thành:
Kết quả in ra là:
Một số điểm quan trọng: – Đầu tiên, phần điều kiện được đánh giá (a < b), sau đó hoặc là a hoặc là b sẽ được trả về dựa trên giá trị Boolean được trả về bởi điều kiện đó – Thứ tự của các đối số truyền vào hàm toán tử sẽ khác nhau đối với các ngôn ngữ lập trình khác nhau – Mức độ ưu tiên của các biểu thức điều kiện là thấp nhất trong số tất cả các toán tử của Python. 4. Phương pháp được sử dụng trước phiên bản 2.5 (khi chưa có tenary4.1 operator – toán tử ba ngôi)Trong một biểu thức có dạng giống với ví dụ bên dưới đây, trình thông dịch (interpreter) sẽ kiểm tra biểu thức này, nếu nó là true (đúng) thì on_true sẽ được đánh giá, nếu không thì on_false sẽ được đánh giá. 4.2 Cú pháp:‘ ‘ ‘ Khi điều kiện là true (đúng), biểu thức [on_false] sẽ không được thực thi và giá trị của “True and [on_true]” sẽ được trả về. Nếu không thì giá trị của “False or [on_false]” sẽ được trả về. Lưu ý rằng “True and x” sẽ bằng với x, và “False or x” sẽ bằng với x. ‘ ‘ ‘
4.3 Ví dụ:
Kết quả in ra là:
Lưu ý rằng: Hạn chế duy nhất của phương pháp này là on_true phải không được bằng 0 hoặc False. Nếu on_true bằng 0 hoặc False thì on_false sẽ luôn luôn được đánh giá. Điều này xảy ra là do nếu biểu thức được đánh giá là true (đúng), thì trình thông dịch (interpreter) sẽ kiểm tra on_true, tuy nhiên nếu on_true lại bằng 0 hoặc bằng False, thì điều đó sẽ buộc trình thông dịch phải kiểm tra on_false để đưa ra kết quả cuối cùng của toàn bộ biểu thức.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you! |