Sólo he venido a saber que hay Truthy y Falsy valores en python que son diferentes de las normales de True y False?

Por favor alguien puede explicar en profundidad lo que truthy y falsy son los valores?

Donde debo usar?

¿Cuál es la diferencia entre truthy y True valores y falsy y False valores ?

  • Si bool(value) resultados en True, entonces value es truthy.
  • Usted inventó esas palabras a ti mismo, ¿no? De todos modos, vea __nonzero__ y __bool__
  • Truthy/Falsy valores son sólo las conveniencias para situaciones donde se necesita un binario de prueba de algún tipo. Permite para simplificar el código, y la más simple es a menudo más fácil de leer con una menor probabilidad de errores.
  • P. S. True y False son especializaciones de la int tipo con valores de 1 y 0.
  • Truthy y falsy se utiliza comúnmente en el código de golf, si los lenguajes de programación no tienen valores booleanos.
  • y ‘falsy’ son ampliamente utilizados cuando la comparación de los lenguajes de programación, por ejemplo, PHP vs PERL vs Python vs JS. (Por supuesto que no solo es el código de golf).

InformationsquelleAutor | 2016-10-11

5 Comentarios

  1. 60

    Como los comentarios que hemos descrito, sólo se refiere a los valores que se evalúan a Verdadero o Falso.

    Por ejemplo, para ver si la lista no está vacía, en lugar de comprobar como esta:

    if len(my_list) != 0:
       print("Not empty!")

    Usted puede simplemente hacer esto:

    if my_list:
       print("Not empty!")

    Esto es debido a que algunos valores, tales como vacío listas, se considera que son Falsos cuando se evaluó por un valor booleano. No vacías listas son Verdaderas.

    De manera similar para el entero 0, la cadena vacía «», y así sucesivamente, por Falsa, y que no sea cero enteros, las cadenas no vacías, y así sucesivamente, por Cierto.

    La idea de términos como «truthy» y «falsy» simplemente se refieren a los valores que se consideran Verdaderos en casos como los descritos anteriormente, y los que se consideran Falsos.

    Por ejemplo, una lista vacía ([]) se considera «falsy», y no vacía de la lista (por ejemplo, [1]) se considera «truthy».

    Ver también esta sección de la documentación.

    • o significa que si my_list es cierto?
    • Sugiero tratar estas cosas en un interprete de Python y ver por ti mismo. 😉 if my_list significa «si my_list no está vacío», y if not my_list significa «si my_list está vacía».
    • ok he pasado poco de confusión , he visto muchos lugares como if a: lo que este tipo de condiciones significa ? es decir si una es verdadera o significa que si una es falsa ? o significa que si una es truthy o si es falsy ?
    • Esto significa que «si es cierto». Como he descrito en mi respuesta, y como han descrito otros en los comentarios y en otras respuestas, diferentes cosas que se CONSIDERAN Verdaderos o Falsos, pero en realidad no son así. Una lista vacía, por ejemplo, se considera Falsa. Es por eso que if []: nunca iba a ejecutar.
    • significa que si un: significa que si una es verdadera (cuando es un entero o una cadena ), y si: los medios false si a es una lista vacía o vacío dict o falsos valores !
    • Sí, suponiendo que yo te entienda correctamente. ^_^

  2. 153

    Todos los valores son considerados «truthy» a excepción de los siguientes, que son «falsy»:

    • None
    • False
    • 0
    • 0.0
    • 0j
    • Decimal(0)
    • Fraction(0, 1)
    • [] – un vacío list
    • {} – un vacío dict
    • () – un vacío tuple
    • '' – un vacío str
    • b'' – un vacío bytes
    • set() – un vacío set
    • un vacío range, como range(0)
    • objetos para los que
      • obj.__bool__() devuelve False
      • obj.__len__() devuelve 0

    Un «truthy» valor va a satisfacer la verificación realizada por if o while declaraciones. Utilizamos «truthy» y «falsy» para diferenciarse de la bool valores True y False.

    Valor de Verdad de Prueba

    • Gran lista, gracias. Completamente cuestión académica, pero ¿sabéis cuál es el orden de ejecución es? Estaba pensando que podría crear un objeto, donde bool devuelve True y len devuelve 0 (o viceversa).
    • Busca __bool__ en primer lugar, a continuación,__len__. Si no se define, todos los casos son considerados «verdaderos». Esto se describe en la documentación de la object.__bool__ método
    • En Python las versiones anteriores a la 3.5, objetos en tiempo de en representación de la medianoche UTC fueron considerados Falsos. Este artículo ofrece un resumen de un informe de error de la cuestión y la eventual resolución.
    • Curiosamente para la datetime paquete, datetime.min es truthy mientras timedelta(0) es falsy.
    • Que tiene sentido aunque, ¿verdad? El mínimo valor de datetime es sólo una fecha como cualquier otra, no es igual a cero en cualquier forma. Por el contrario, timedelta(0) es igual a cero. Esto fue llevado hasta cuando se descubrió que el tiempo de los valores que representan a la medianoche fueron falsy, que finalmente fue corregido: lwn.net/Articles/590299
    • bytearray(), frozenset(), memoryview(b''), {}.keys(), {}.items(), {}.values()
    • Tenga cuidado aquí. Hay algunos muy populares construye desde fuera de la biblioteca estándar que no se aplican: print("truthy") if np.array(0) else "falsy"

  3. 4

    Truthy los valores se refieren a los objetos utilizados en un contexto booleano y no tanto el valor booleano que devuelve true o false.Tomar estos como un ejemplo:

    >>> bool([])
    False
    >>> bool([1])
    True
    >>> bool('')
    False
    >>> bool('hello')
    True
  4. 3

    Python determina la veracidad mediante la aplicación de bool() el tipo, que devuelve True o False que se utiliza en una expresión como if o while.

    Aquí es un ejemplo de una clase personalizada Vector2dy es la instancia de devolución de False cuando la magnitud (longitud de un vector) es 0, en caso contrario True.

    import math
    class Vector2d(object):
        def __init__(self, x, y):
            self.x = float(x)
            self.y = float(y)
    
        def __abs__(self):
            return math.hypot(self.x, self.y)
    
        def __bool__(self):
            return bool(abs(self))
    
    a = Vector2d(0,0)
    print(bool(a))        #False
    b = Vector2d(10,0)    
    print(bool(b))        #True

    Nota: Si no tendríamos definido __bool__ siempre devolverá True, como instancias de una clase definida por el usuario son considerados truthy por defecto.

    Ejemplo del libro: «Habla en Python, clara, concisa y eficaz de programación»

  5. 0

    Python convertir valores Booleanos con el fin de determinar truthy y falsy valores.

    por ejemplo
    is_old = 49 en realidad iba a ser interpretado como is_old = bool(49),
    Que a su vez devolverá True

    otro ejemplo
    is_string = » devolverá false, ya que la cadena vacía sería interpretado como falso

    • Hay otras respuestas que proporcionan el OP pregunta, y en la que fueron publicados hace algún tiempo. Cuando se publique una respuesta ver: ¿Cómo escribir una buena respuesta?, por favor, asegúrese de agregar una nueva solución, o un mucho mejor explicación, especialmente cuando se contestan las mayores preguntas.

Dejar respuesta

Please enter your comment!
Please enter your name here