Có đảm bảo rằng False == 0
và True == 1
, trong Python (giả sử rằng chúng không được người dùng gán lại)? Chẳng hạn, liệu có đảm bảo rằng đoạn mã sau sẽ luôn tạo ra kết quả giống nhau, bất kể phiên bản Python nào (cả hiện tại và có khả năng là tương lai) không?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Bất kỳ tài liệu tham khảo đến các tài liệu chính thức sẽ được nhiều đánh giá cao!
Chỉnh sửa : Như đã lưu ý trong nhiều câu trả lời, bool
kế thừa từ int
. Do đó, câu hỏi có thể được gọi lại là: "Tài liệu có chính thức nói rằng các lập trình viên có thể dựa vào booleans kế thừa từ các số nguyên, với các giá trị 0
và1
không?". Câu hỏi này có liên quan để viết mã mạnh mẽ sẽ không thất bại vì chi tiết triển khai!
sum(bool_list)
. Nếu không, bạn sẽ phải viết sum(1 for x bool_list if x)
.
bool_list.count(True)
rõ ràng hơn; nó cũng nhanh hơn khoảng 3 lần so với :) :)