web-dev-qa-db-fra.com

Quelle est l'application pratique de bool () en Python?

Quand est-il utilisé dans le codage quotidien? J'apprends Python en utilisant ce tutoriel . Ce à quoi je fais référence est décrit ici (milieu de la page), mais je peux ' Je ne comprends pas les principes d'utilisation de Vrai et Faux, mais je ne comprends pas quand (ou faisons) nous utilisons réellement la fonction bool() dans la pratique lors de l'écriture de notre code. Cela m'aiderait si vous donner l'exemple quotidien et pratique de bool() dans le code.

11

Il vous permet de convertir n'importe quelle valeur Python en valeur booléenne.

Parfois, vous souhaitez stocker True ou False selon un autre objet Python. Au lieu de:

if python_object:
    result = True
else:
    result = False

vous faites simplement:

result = bool(python_object)

Comment Python sont convertis en valeur booléenne, tout dépend de leur valeur de vérité De manière générale, None, 0 numérique et les conteneurs vides (liste vide, dictionnaire, ensemble, Tuple, chaîne, etc.) sont tous False, le reste est True.

Vous l'utilisez chaque fois que vous avez besoin d'une valeur booléenne explicite. Supposons que vous construisez une arborescence d'objets et que vous souhaitez inclure une méthode qui renvoie True s'il y a des enfants dans l'arborescence:

class Tree(object):
    def __init__(self, children):
        self.children

    def has_children(self):
        return bool(self.children)

Maintenant, Tree().has_children() renverra True lorsque self.children N'est pas vide, False sinon.

22
Martijn Pieters

Pour comprendre de quelle bool() avons-nous besoin d'abord de comprendre le concept d'un booléen.

Une variable booléenne est représentée par un 0 ou 1 en binaire dans la plupart des langages de programmation. Un 1 représente un "vrai" et un 0 représente un "faux"

Le nombre 1 est différent d'une valeur booléenne True à certains égards. Par exemple, prenez le code suivant:

>>> 1 is True
False

Notez que 1 est différent de True selon Python. Toutefois:

>>> bool(1) is True
True

Lorsque nous utilisons ici la fonction bool(), nous convertissons 1 en booléen. Cette conversion est appelée "casting". La conversion de 1 en booléen renvoie la valeur de "True".

La plupart des objets peuvent être convertis en valeur booléenne. D'après mon expérience, vous devez vous attendre à ce que chaque objet standard soit évalué à Vrai à moins qu'il ne soit 0, Aucun, Faux ou un itérable vide (par exemple: "", [] ou {}). Donc, à titre d'exemple:

>>> bool({})
False
>>> bool({"":False})
True
>>> bool(None)
False
>>> bool("")
False
>>> bool("hello")
True
>>> bool(500)
True
>>> bool(0)
False
>>> bool(False)
False
>>> bool(-1)
True

Enfin, un booléen s'imprime comme "Vrai" ou "Faux"

>>> print bool(1)
True
5
mgoldwasser

bool met en évidence le fait que Python permet des conversions booléennes vers des choses que vous ne considéreriez généralement pas comme vraies ou fausses.

Les listes en sont un exemple. Si len(my_list) est supérieur à 0, il le traite également comme True. S'il n'a pas de longueur - si len() retournerait 0 - c'est False. Cela vous permet d'écrire du code comme ceci:

def check_list_for_values(my_list, value):
    return [x for x in my_list if x == value]

your_list = [5, 6, 7, 8, 9, 5, 3, 4, 8]
if check_list_for_values(3, your_list):
    print "got a match"

Si check_list_for_values renvoie une liste dont la longueur est supérieure à 0, puis il affiche "got a match" car il est évalué à True. S'il n'y a pas de longueur dans la liste qui serait retournée ...

your_list = [5, 6, 7, 8, 9, 5, 3, 4, 8]
if check_list_for_values('elephant', your_list):
    print "got a match"

Ensuite, rien ne sera imprimé, car il est évalué à False.

4
user890167

Convertit une valeur en booléen.

0
Lee Watson