2012-11-13 8 views
6

L'ordine di True e False è ben definito in Python o è lasciato come dettaglio di implementazione?L'ordinamento bool di Python è definito?

Dalla console, vedo False sort prima di True ... ma non so se questo è un comportamento su cui dovrei fare affidamento o meno.

(sono sicuro che ci sia un po 'di Python doc su questo, ma non riesco a trovarlo ...)

+1

Per i punti bonus, prova a fare aritmetica con bool. '(True + True) ** -True == 0.5' ... –

+0

@JameySharp sei un mago? – rsegal

+0

@rsegal Ho scoperto che 'sum ([True, False, ...])' è un bel modo per contare il numero di casi veri in una lista, e il terribile abuso di cui sopra è seguito subito dopo. –

risposta

12

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

booleani: rappresentano la verità valori False e True . I due oggetti che rappresentano i valori False e True sono gli unici oggetti booleani. Il tipo booleano è un sottotipo di interi semplici e i valori booleani si comportano come i valori 0 e 1, rispettivamente, in quasi tutti i contesti, con l'eccezione che quando vengono convertiti in una stringa vengono restituite le stringhe "False" o "True", rispettivamente.

Questa legge per me che il linguaggio Python richiede False < True, False == 0, True == 1, True != 2.

La stessa dicitura viene mantenuta anche in Python 3.

+2

Se non sei sicuro di essere d'accordo con la comprensione di sharth, prova a collegarlo a un interprete. Verificherai rapidamente che 'False rsegal