jueves, 10 de diciembre de 2015

T1. LOS TIPOS NONE Y BOOLEANO. POCO TEXTO PERO MUCHA ENJUNDIA.

PUESTA DE SOL DESDE EL PINAR DE TÁGARA, CON LA ISLA DE LA PALMA AL FONDO Y EL NORTE DE LA ISLA DE LA GOMERA ASOMANDO POR LA IZQUIERDA.

EL TIPO NONE:

   
      El tipo de dato None significa "nada", "ninguna cosa". Constituye por sí mismo un tipo de dato en Python. Imaginemos que tenemos una pelota de tenis completamente quieta sobre una mesa. Si nos acercamos y ejercemos una fuerza sobre ella de 10 newtons, la pelota se moverá más o menos en la dirección en la que hemos aplicado la fuerza: por ejemplo si lo aplicamos sobre la superficie derecha de la pelota, ésta se moverá hacia la derecha. Fácil, ¿no? Ahora imaginemos que aplicamos una fuerza de 0 newtons sobre la superficie derecha de la pelota... pero la pelota no se mueve. No le hemos aplicado fuerza, ¿verdad? Como es igual a cero... ¡Falso! ¡Falso de toda falsedad! Sí que le hemos aplicado una cantidad de fuerza, pero como ésta tiene un valor nulo, la pelota no se mueve. Si None significa "nada" o "ninguno", ¿podemos decir, en términos "pythonianos", que hemos aplicado a la pelota una fuerza None, teniendo en cuenta que ésta es nula o igual a 0? No. Porque sí que hay algo: una fuerza que hemos ejercido sobre la pelota. Otro caso es que ésta sea nula o igual a cero.
Luego None no significa que algo es igual a cero.
Imaginemos ahora que declaramos una variable y que le asignamos como valor una string vacía, a = " ", por ejemplo, porque sabemos que ya "tomará cuerpo" cuando un usuario introduzca un dato. No hay nada, no vemos nada. ¿Podemos decir entonces que es igual a None porque no contiene nada? ¡No, por Dios! Sí que hay algo: una string, vacía, sí, pero una string
Luego None no significa que algo esté vacío.
Tampoco None significa FALSE, que es un tipo de dato booleano.
¿Y para qué sirve entonces el tipo de dato None?
Para inicializar una variable previamente declarada si no sabemos de antemano qué tipo de dato va contener: a = None. También para introducir una variable "comodín" dentro del código para que se le "autoasigne" un valor durante la ejecución del script.
Podemos asignar None a cualquier variable que queramos, pero no podemos crear un objeto None por nosotros mismos.
Mostramos un ejemplo:




Sin embargo, tengamos en cuenta que None sí que cuenta como objeto, es algo en sí mismo, tiene "peso". Por eso no podemos usarlo en codificaciones como la que se muestra a continuación porque nos daría error:



EL TIPO BOOLEANO:

    
     Los BOOLEANOS constituyen un tipo de dato integrado compuestos por dos únicos elementos: TRUE ("verdadero") y FALSE ("falso"). la función de conversión correspondiente es bool()
  1.      bool() => Si no lleva argumentos devuelve False.
  2.      bool(argumento booleano) => Devuelve una copia del argumento.
  3.      bool(argumento) =>  Trata de convertirlo a booleano.
Veamos un ejemplo:



Los booleanos resultan extremadamente útiles en las comparaciones entre objetos, en las verificaciones (si un objeto A está contenido o no dentro de un objeto B), en las aserciones (si cuando afirmamos que tal objeto es tal objeto estamos equivocados o no), en las validaciones, a la hora de establecer identidades absolutas, y en los controles de flujo del código a través de autoevaluaciones continuas: Que A es True, pues hago esto o continúo haciendo lo otro; que A ahora resulta False, pues dejo de hacer lo que estaba haciendo y hago esto otro.

     
      COMO CURIOSIDAD CURIOSA, EL VALOR DE True SE CORRESPONDE CON EL ENTERO 1, MIENTRAS QUE EL DE FALSE SE CORRESPONDE CON EL VALOR 0. COMO AMBOS SON NÚMEROS ENTEROS, ES POSIBLE REALIZAR OPERACIONES ARITMÉTICAS CON LOS BOOLEANOS, ESO SÍ, MUY SIMPLES. INCLUSO PODEMOS CONVERTIR A UN BOOLEANO True O False MEDIANTE LA FUNCIÓN int() EN SUS CORRESPONDIENTES ENTEROS. ¿QUERÉIS VERLO? PUES NADA, MIRAR ABAJO:





El tipo de dato booleano lo veremos muchísimo a lo largo de este manual, por lo que todavía aprenderemos alguna cosilla más sobre ellos y su utilidad pero, sobre todo, con los ejemplos, los veremos en funcionamiento que es lo que realmente importa, ahí, ahí, dando siempre lo mejor de sí mismos.
Aunque podamos repetirla en otro lugar dentro de este manual, implementemos aquí una tabla con los OPERADORES DE COMPARACIÓN, de uso común con los booleanos:

Añadimos a continuación una tabla de OPERADORES LÓGICOS, que actúan sobre expresiones que contienen a su vez operadores de comparación. Al final de la tabla incluimos ejemplos de uso de los distintos operadores lógicos:










Un último detalle a tener (muy) en cuenta: Python asocia un valor binario a los booleanos, de tal modo que True tiene un valor de tipo entero asignado igual a 1, y False tiene un valor de tipo entero asignado igual a 0. Consecuentemente, True == 1 y False == 0. ¿Que se nos hace difícil creerlo? Pues miremos esto:



Esta circunstancia, según lo que busquemos conseguir con nuestros códigos, puede resultar un recurso más o una desventaja: de nosotros depende. He aquí un ejemplo de lo que puede ocurrir con el paso de tipos booleanos como datos o valores:



Lo dicho: tengámoslo (muy) en cuenta.


PUNTA DE ANTEQUERA, EN EL EXTREMO ORIENTAL DEL MACIZO DE ANAGA.

No hay comentarios:

Publicar un comentario