115 votes

Comment utiliser un booléen en Python ?

Python contient-il réellement une valeur booléenne ? Je sais que c'est possible :

checker = 1
if checker:
    #dostuff

Mais je suis assez pédant et j'aime voir des booléens en Java. Par exemple :

Boolean checker;
if (someDecision)
{
    checker = true;
}
if(checker)
{
    //some stuff
}

Existe-t-il une chose telle qu'un booléen en Python ? Je ne trouve rien de tel dans la documentation.

151voto

Bastien Léonard Points 18404
checker = None 

if some_decision:
    checker = True

if checker:
    # some stuff

[Edit]

Pour plus d'informations : http://docs.python.org/library/functions.html#bool

Votre code fonctionne aussi, puisque 1 est converti en True si nécessaire. En fait, Python n'a pas eu de type booléen pendant longtemps (comme dans le vieux C), et certains programmeurs utilisent encore des entiers au lieu de booléens.

95voto

Mark Rushakoff Points 97350

Les builtins booléens sont en majuscules : True y False .

Notez également que vous pouvez faire checker = bool(some_decision) comme un peu de raccourci -- bool ne reviendra jamais True o False .

Il est bon de savoir, pour référence future, que les classes définissant __nonzero__ o __len__ sera True o False selon le résultat de ces fonctions, mais le résultat booléen de presque tous les autres objets sera True (sauf pour le None les séquences vides et les zéros numériques).

12voto

Terje Dahl Points 149

True ... et False évidemment.

Autrement, None vaut False, tout comme l'entier 0 et aussi le flotteur 0.0 (bien que je n'utiliserais pas les flottants comme ça). De même, les listes vides [] des tuplets vides () et les chaînes vides '' o "" évaluent à Faux.

Essayez-le vous-même avec la fonction bool() :

bool([])
bool(['a value'])
bool('')
bool('A string')
bool(True)  # ;-)
bool(False)
bool(0)
bool(None)
bool(0.0)
bool(1)

etc.

5voto

Anurag Uniyal Points 31931

Les types booléens sont définis dans la documentation :
http://docs.python.org/library/stdtypes.html#boolean-values

Cité dans le document :

Les valeurs booléennes sont les deux objets constants Faux et Vrai. Ils sont utilisés pour représenter les valeurs de vérité (bien que d'autres valeurs puissent également être considérées comme fausses ou vraies). Dans des contextes numériques (par exemple lorsqu'ils sont utilisés comme argument d'un opérateur arithmétique), ils se comportent comme les entiers 0 et 1, respectivement. La fonction intégrée bool() peut être utilisée pour convertir n'importe quelle valeur en booléen, si la valeur peut être interprétée comme une valeur de vérité (voir la section Test des valeurs de vérité ci-dessus).

Ils s'écrivent respectivement Faux et Vrai.

Donc dans le code java, enlevez les accolades, changez true à True et tout ira bien :)

4voto

van Points 18052

Oui, il y a un bool (qui hérite de int et n'a que deux valeurs : True y False ).

Mais Python a aussi boolean-able pour chaque objet, qui est utilisé lorsque la fonction bool([x]) s'appelle.

Voir plus : objet. non nul y valeur booléenne d'objets en python .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X