Pregunta ¿Cuál es la aplicación práctica de bool () en Python?


¿Cuándo se usa en la codificación diaria? Estoy aprendiendo Python usando este tutorial. A qué me refiero se describe aquí (medio de la página), pero no puedo entenderlo. Entiendo los principios de usar Verdadero y Falso, pero no entiendo cuándo (o si) realmente usamos el bool() Funciona en la práctica mientras escribes nuestro código. Me ayudaría si das el ejemplo práctico y cotidiano de bool() en codigo.


5
2017-07-21 14:48


origen


Respuestas:


Te permite convertir cualquier valor de Python a un valor booleano.

A veces quieres guardar cualquiera True o False dependiendo de otro objeto Python. En lugar de:

if python_object:
    result = True
else:
    result = False

simplemente haces

result = bool(python_object)

Cómo Los objetos Python se convierten a un valor booleano, todo depende de su valor de verdad. Generalmente hablando, None, 0 numéricos y contenedores vacíos (lista vacía, diccionario, conjunto, tupla, cadena, etc.) son todos False, el resto es True.

Lo usas siempre que necesites un valor booleano explícito. Supongamos que está creando un árbol de objetos y desea incluir un método que devuelva True si hay niños en el árbol:

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

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

Ahora Tree().has_children() regresará True cuando self.children no está vacío, False de otra manera.


15
2017-07-21 14:52



Para entender qué bool () necesitamos primero entender el concepto de booleano.

Una variable booleana está representada por un 0 o 1 en binario en la mayoría de los lenguajes de programación. Un 1 representa un "Verdadero" y un 0 representa un "Falso"

El número 1 es diferente de un valor booleano de True en algunos aspectos. Por ejemplo, tome el siguiente código:

>>> 1 is True
False

Tenga en cuenta que 1 es diferente de True según Python. Sin embargo:

>>> bool(1) is True
True

Cuando usamos la función bool () aquí, convertimos 1 a boolean. Esta conversión se llama "casting". La conversión de 1 a booleano devuelve el valor de "True".

La mayoría de los objetos se pueden convertir a un valor booleano. Según mi experiencia, debe esperar que cada objeto estándar se evalúe como Verdadero a menos que sea 0, Ninguno, Falso o un iterable vacío (por ejemplo: "", [] o {}). Entonces como un ejemplo:

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

Por último, un booleano se imprime como "Verdadero" o "Falso"

>>> print bool(1)
True

3
2017-07-21 15:51



bool expone el hecho de que Python permite conversiones booleanas a cosas que normalmente no consideras verdaderas o falsas.

Un ejemplo de esto son las listas. Si len(my_list) sería mayor que 0, también trata esto como True. Si no tiene longitud - si len() devolvería 0 - es False. Esto te permite escribir un código como este:

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 devuelve una lista que tiene una longitud mayor que 0, luego se imprime "obtuvo una coincidencia" porque se evalúa como True. Si no hay longitud en la lista que se devolvería ...

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

Entonces no habrá nada impreso, porque se evalúa a False.


2
2017-07-21 14:57



Convierte un valor a un booleano.


-3
2017-07-21 14:50