Tôi đang nhầm lẫn về cách Python đánh giá các câu lệnh boolean.Thao tác Boolean
Ví dụ:
False and 2 or 3
lợi nhuận 3
Làm thế nào là đánh giá? Tôi nghĩ Python lần đầu tiên nhìn vào 'False và 2', và trả về False mà không cần nhìn vào 'hoặc 3'. Thứ tự của Python nhìn thấy ở đây là gì?
khác là:
1 or False and 2 or 2 and 0 or 0
lợi nhuận 1
Từ những gì tôi thu thập được từ ví dụ đầu tiên, tôi nghĩ Python sẽ đánh giá từ trái sang phải, vì vậy '1 hoặc False' sẽ trở lại 1, sau đó '1 và 2' sẽ trả về 2, sau đó '2 hoặc 2' sẽ trả về 2 đầu tiên, sau đó '2 và 0' sẽ trả về 0, sau đó '0 hoặc 0' sẽ trả lại giá trị thứ hai 0.
Như bạn có thể nói rằng tôi khá lúng túng ở đây, xin hãy giúp đỡ!
Cảm ơn!
Ah để so sánh với và phải được đặt trong dấu ngoặc đơn của riêng chúng. Điều đó có ý nghĩa hơn rất nhiều. Làm thế nào bạn biết làm (1 hoặc (((Sai và 2) hoặc (2 và 0)) hoặc 0)) thay vì (1 hoặc (Sai và 2) hoặc (2 và 0) hoặc 0)? – kkSlider
@kkSlider Chỉ khi bạn cần thay đổi thứ tự ưu tiên, hoặc muốn làm cho nó rõ ràng hơn - giống như trong toán học thông thường. Quá trình đánh dấu quá mức sẽ làm cho mã của bạn ít rõ ràng hơn. Như ví dụ của bạn. đó là vấn đề logic của tình huống của bạn. –
@kkSlider: Nó không phải là nếu bạn không muốn thực thi một thứ tự nhất định. Nhưng nó phải nếu bạn muốn đánh giá biểu thức là 'False và (2 hoặc 3)'. * chỉnh sửa: * những gì @Lattyware nói :) –