Hướng dẫn python ternary multiple conditions - trăn bậc ba nhiều điều kiện
Theo thứ tự nào mà toán tử ternary lồng nhau đánh giá các điều kiện của nó? Câu trả lời ngắn gọn: Toán tử ternary lồng nhau
Xây dựng vấn đềLàm tổ đơn giản '1' if x else '2' if y else '3' Nhiều tổ: What is the operator precedence for the nested ternary operator?
Cho một toán tử ternary lồng nhau trong Python: is semantically different to Scenario B as can be seen in this example: >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1' Làm tổ đơn giảnNhiều tổ >>> x, y = True, False # Scenario A >>> ('1' if x else '2') if y else '3' '3' # Scenario B >>> '1' if x else ('2' if y else '3') '1' # Correct Scenario: B >>> '1' if x else '2' if y else '3' '1' Nhiều tổLàm thế nào để thao tác với người vận hành ưu tiên? '1' if x else '2' if y else '3' if z else '4' Làm thế nào để các nhà điều hành ternary hoạt động bằng mọi cách? Cho một toán tử ternary lồng nhau trong Python: >>> x, y, z = True, True, False >>> # Scenario A >>> (('1' if x else '2') if y else '3') if z else '4' '4' >>> # Scenario B >>> '1' if x else ('2' if y else ('3' if z else '4')) '1' >>> # Correct Scenario: B >>> '1' if x else '2' if y else '3' if z else '4' '1' Làm thế nào để thao tác với người vận hành ưu tiên?Làm thế nào để các nhà điều hành ternary hoạt động bằng mọi cách? Cho một toán tử ternary lồng nhau trong Python: >>> x, y = True, False >>> # Normal precedence: first condition first >>> '1' if x else '2' if y else '3' '1' >>> # Force second condition first: >>> ('1' if x else '2') if y else '3' '3' Làm thế nào để các nhà điều hành ternary hoạt động bằng mọi cách?Cho một toán tử ternary lồng nhau trong Python: Câu hỏi: Nhà điều hành ưu tiên cho toán tử ternary lồng nhau là gì? Kịch bản A: >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'3 which reads as “return >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'4 if >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'5 else return >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'6“. Let’s write this more intuitively as:Kịch bản B: '1' if x else ('2' if y else '3')
Bạn có thể thấy điều này trong ví dụ sau: Bạn có thể thao tác với toán tử bình thường ưu tiên cho toán tử ternary bằng cách sử dụng dấu ngoặc đơn phù hợp. Bằng cách bao quanh một thuật ngữ trong một dấu ngoặc đơn, bạn buộc Python phải đánh giá biểu thức theo thứ tự được chỉ định. Bằng cách này, bạn có thể buộc Python, ví dụ, để đánh giá điều kiện thứ hai trước điều kiện đầu tiên của toán tử ternary.
Toán tử ternary cơ bản nhất >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'3 bao gồm ba toán hạng >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'4, >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'5 và >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'6. Đó là một biểu thức với giá trị trả về. Toán tử ternary trả về >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'4 nếu biểu thức boolean >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'5 đánh giá thành >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'9. Mặt khác, nếu biểu thức >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'5 đánh giá thành >>> x, y = True, False # Scenario A >>> ('1' if x else '2') if y else '3' '3' # Scenario B >>> '1' if x else ('2' if y else '3') '1' # Correct Scenario: B >>> '1' if x else '2' if y else '3' '1'1, toán tử ternary trả về phương án thay thế >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'6. Nhà điều hành Python Ternary-và một hack một lớp lót đáng ngạc nhiên Cú pháp: Ba toán hạng được viết là >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'3 đọc dưới dạng trả về >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'4 nếu >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'5 khác trả về >>> x, y = True, False >>> # Scenario A >>> ('1' if x else '2') if y else '3' '3' >>> # Scenario B >>> '1' if x else ('2' if y else '3') '1'6. Hãy để viết điều này một cách trực quan hơn như: |