Ist sichergestellt , dass False == 0
und True == 1
in Python (unter der Annahme , dass sie nicht vom Benutzer zugewiesen werden)? Ist zum Beispiel in irgendeiner Weise garantiert, dass der folgende Code unabhängig von der Version von Python (sowohl vorhandene als auch wahrscheinlich zukünftige) immer die gleichen Ergebnisse liefert?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Jeder Verweis auf die offizielle Dokumentation wäre sehr dankbar!
Bearbeiten : Wie in vielen Antworten erwähnt, bool
erbt von int
. Die Frage kann daher wie folgt umformuliert werden: "Sagt die Dokumentation offiziell, dass sich Programmierer auf Boolesche Werte0
1
verlassen können, die von ganzen Zahlen mit den Werten und erben ?". Diese Frage ist relevant für das Schreiben von robustem Code, der aufgrund von Implementierungsdetails nicht fehlschlägt!
sum(bool_list)
. Sonst müsstest du schreiben sum(1 for x bool_list if x)
.
bool_list.count(True)
ist expliziter; es ist auch ungefähr 3 mal schneller… :)