2012-11-13 10 views
6

Czy uporządkowanie prawdy i fałszu jest dobrze zdefiniowane w języku Python, czy jest pozostawione jako szczegół implementacji?Czy zdefiniowano sortowanie Bool Pythona?

Z konsoli widzę Fałszywy sort przed Prawdziwym ... ale nie wiem, czy to zachowanie, na które powinienem polegać, czy nie.

(jestem pewien, że niektóre Python doc na ten temat, ale nie mogę go znaleźć ...)

+1

Aby uzyskać punkty bonusowe, spróbuj robić arytmetyczne ze słowami kluczowymi. '(True + True) ** -True == 0,5' ... –

+0

@JameySharp jesteś czarodziejem? – rsegal

+0

@rsegal Odkryłem, że 'suma ([prawda, fałsz, ...])' jest miłym sposobem policzenia liczby prawdziwych przypadków na liście, a powyższe okropne nadużycie nastąpiło szybko po. –

Odpowiedz

12

http://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy

Boolean: Stanowią one prawdą wartości Fałsz i Prawda . Dwa obiekty reprezentujące wartości False i True są jedynymi obiektami typu Boolean. Typ Boolean jest podtypem zwykłych liczb całkowitych, a wartości logiczne zachowują się odpowiednio jak wartości 0 i 1 w prawie wszystkich kontekstach, z wyjątkiem tego, że po przekonwertowaniu na ciąg znaków zwracane są ciągi "False" lub "True", odpowiednio.

to czyta mi się, że język Python wymaga False < True, False == 0, True == 1, True != 2.

To samo sformułowanie zachowano również w Python 3.

+2

Jeśli nie masz pewności, zgadzasz się ze zrozumieniem Sharth, spróbuj podłączyć go do tłumacza. Szybko zweryfikujesz, że 'False rsegal

Powiązane problemy