web-dev-qa-db-fra.com

Comment utiliser un booléen en Python?

Est-ce que Python contient réellement une valeur booléenne? Je sais que tu peux faire:

checker = 1
if checker:
    #dostuff

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

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

Existe-t-il un booléen en Python? Je n'arrive pas à trouver quelque chose comme ça dans la documentation.

103
Federer
checker = None  # not necessary

if some_decision:
    checker = True

if checker:
    # some stuff

[Modifier]

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 l'ancien C), et certains programmeurs utilisent toujours des entiers au lieu de booléens.

135
Bastien Léonard

Les fonctions intégrées booléennes sont capitalisées: True et False.

Notez aussi que vous pouvez utiliser checker = bool(some_decision) comme un raccourci - bool ne retournera jamais True ou False.

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

91
Mark Rushakoff

True ... et False évidemment.

Sinon, None est évalué à False, de même que l'entier 0 et le flottant 0.0 (bien que je n'utilise pas de tels flottants). De même, les listes vides [], les n-olets vides () et les chaînes vides '' ou "" sont évalués à False.

Essayez 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..

11
Terje Dahl

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

Citation de doc:

Les valeurs booléennes sont les deux objets constants False et True. Ils sont utilisés pour représenter des valeurs de vérité (bien que d'autres valeurs puissent également être considérées comme fausses ou vraies). Dans les contextes numériques (par exemple, lorsqu'ils sont utilisés comme arguments 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 cette valeur peut être interprétée comme une valeur de vérité (voir la section Test de valeur de vérité ci-dessus).

Ils sont écrits respectivement comme False et True.

Donc, dans le code Java, supprimez les accolades, remplacez true par True et tout ira bien :)

5
Anurag Uniyal

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

Mais aussi Python a le concept boolean-able pour chaque objet, qui est utilisé lorsque la fonction bool([x]) est appelée.

Voir plus: objet. non nul et valeur booléenne des objets en python .

3
van

Contrairement à Java où vous déclareriez boolean flag = True, en Python, vous pouvez simplement déclarer myFlag = True

Python interpréterait cela comme une variable booléenne

0
coder