¡Hola de nuevo! Vaya si ha pasado algo de tiempo desde nuestro último tutorial, culpo plenamente a mi mala administración de actividades y tiempo, y es que durante estos días he tenido que lidiar con bastantes cosas en el trabajo, y... bueno, dejemos de hablar de mí, y hablemos de programación, mas concretamente de Python. Para éste tutorial he preparado lo básico en cuanto al uso de tipos booleanos y una de las sentencias mas utilizadas dentro de nuestros desarrollos: la sentencia IF. Espero que nuestra ausencia no haya demeritado sus ganas de aprender y se hayan oxidado, por el contrario esperamos que hayan trabajado por su lado y logrado mucho mas aprendizaje por ustedes mismos que del que obtuvieran con este tutorial, al fin y al cabo un programador se cultiva solo, y esta es tan solo una manera de acompañarlos en su viaje. El tutorial tras el salto...
Booleanos en
Python
El tipo booleano, bool en Python, tiene dos valores: Verdadero (True) y Falso (False).
Operadores de comparación
Los
operadores de comparación toman dos valores y producen un valor booleano.
Descripción
|
Operador
|
Ejemplo
|
Resultado
|
Menor que
|
<
|
5 < 6
|
True
|
Mayor que
|
>
|
5 > 6
|
False
|
Igual a
|
==
|
5 == 6
|
False
|
Mayor o
igual que
|
>=
|
5 >= 6
|
False
|
Menor o
igual que
|
<=
|
5 <= 6
|
True
|
Diferente
a
|
!=
|
5 != 6
|
True
|
Operadores lógicos
También
existen tres operadores lógicos que producen valores booleanos: and, or, y not.
Descripción
|
Operador
|
Ejemplo
|
Resultado
|
Negación
|
not
|
not (80 >= 50)
|
False
|
Conjunción
|
and
|
(80 >= 50) and (70 <= 50)
|
False
|
Disyunción
|
or
|
(80 >= 50) and (70 <= 50)
|
True
|
Tabla de verdad and
El operador and evalúa como verdadero o True si y solo si, ambas expresiones
son verdaderas.
expresion1
|
expresion2
|
expresion1 and expresion2
|
True
|
True
|
True
|
True
|
False
|
False
|
False
|
True
|
False
|
False
|
False
|
False
|
Tabla de verdad or
El operador or evalúa como verdadero o True, si y solo si, al menos una
expresión es verdadera.
expresion1
|
expresion2
|
expresion1 or expresion2
|
True
|
True
|
True
|
True
|
False
|
True
|
False
|
True
|
True
|
False
|
False
|
False
|
Tabla de verdad not
El operador not evalúa a verdadero o True, si y solo si, la expresión es falsa o False.
expresion1
|
not expresion1
|
True
|
False
|
False
|
True
|
TIP: Si queremos hacer una doble negación como por
ejemplo: not not (4 == 5), podemos
simplificarlo de la siguiente manera 4 == 5.
Precedencia para operadores lógicos
El orden de precedencia para operadores lógicos es:
Operador
|
Precedencia
|
Not
|
Más alto
|
And
|
|
Or
|
Más bajo
|
Podemos controlar la precedencia mediante el uso de
paréntesis, los cuales también pueden usarse para otorgar mayor legibilidad.
Ejemplo: El operador not es aplicado antes del operador or en el siguiente código:
Podemos utilizar paréntesis para hacerlo más
legible:(not calif1 >= 70)
or (calif2 >= 70).
O también podemos usar los paréntesis para cambiar
el orden de las operaciones: not ((calif1 >= 70) or (calif2 >= 70)).
Conversiones
entre int, str y float
str
La función pre-construida str toma cualquier valor y retorna
una cadena representando ese valor.
int
La función pre-construida int toma una cadena que contiene solo
números enteros y retorna el int que representa. La función int también convierte valores float a enteros quitando la parte
fraccionaria.
Si la función int es llamada con una cadena que no contenga
solamente números enteros, nos aparecerá un ValueError.
float
La función pre-construida float toma una cadena que contenga solo
dígitos y cero o un punto decimal y retorna el numero flotante que representa.
La función float
también convierte valores int a float.
Si la función float es llamada con una cadena que no puede ser
convertida, aparecerá un ValueError.
Importando Módulos con Import
Python contiene muchas funciones, pero no todas
ellas están disponibles inmediatamente como lo están las funciones
pre-construidas. En lugar de eso, algunas funciones están guardadas en
diferentes módulos. Un módulo es un
archivo que contiene funciones y sentencias definidas.
En programación es posible que definamos nuestros
propios módulos con nuestras propias funciones.
Import.
Para poder tener acceso a las funciones de un
módulo, tenemos que importar ese módulo. La forma general de una sentencia de importación
es:
import nombre_modulo
Para tener acceso a una función dentro de un
módulo, usaremos:
nombre_modulo.nombre_funcion
Por ejemplo, podemos importar el módulo math y llamar a la función sqrt:
También podemos importar nuestros
propios módulos, por ejemplo, si queremos usar las funciones de areas.py (que
creamos en el primer tutorial) en otro módulo, tendremos que hacer lo siguiente import areas. Se recomienda tener el módulo a
importar en el mismo directorio que el módulo importador.
La Sentencia if
Las sentencias If son usadas para controlar que instrucciones serán
ejecutadas. La forma general es:
EJEMPLO 1
if expresion1:
instruccion1
EJEMPLO2
if expresion1:
instruccion1
else:
instruccion2
EJEMPLO3
if expresion1:
instruccion1
elif expresion2:
instruccion2
else:
instruccionN
elif puede ser usado en vez de
"else if", para formar una cadena de condiciones.
Al ejecutar una sentencia if se evalúa cada expresión
de arriba hacia abajo. Si una expresión es evaluada como True, se ejecutarán
las instrucciones de esa cláusula y se saltará el resto de sentencias if. Si existe un else, y ninguna de las expresiones evalúa a True, entonces
se ejecutarán las instrucciones de ése else. Por ejemplo, dada la función:
Lo probamos en el
Shell:
IF’s y las
buenas prácticas
if no requeridos
Es común en los nuevos programadores escribir código como el siguiente:
Esto funciona, pero es estilísticamente cuestionable. Además de que codificamos más de lo necesario.
numero%2 == 0 es una expresión que por sí misma
evalúa a True o False, por lo que ésta expresión puede ser usada junto con
la sentencia return:
if-elif vs. if-if
Una sentencia if con una cláusula elif es
una sentencia simple. Las expresiones son evaluadas de arriba hacia abajo hasta
que una evalué a True o hasta que ya no queden expresiones por evaluar. Cuando una expresión evalúa a True, las
instrucciones asociadas a ella se ejecutan y la sentencia if termina. Cualquier
expresión subsecuente es ignorada. Por ejemplo:
La condición de la sentencia if (calif1 >=
80) evalua a True, por lo que la instrucción asociada con ese if se
ejecuta y la sentencia termina. La condición de la sentencia elif ni
siquiera es evaluada.
Es posible que varias sentencias if aparezcan una
tras otra en un programa. A pesar de esto son completamente independientes
entre ellos y es posible que las instrucciones de cada if sean ejecutadas. Por
ejemplo:
En el código anterior, la condición asociada con la
primer sentencia if(calif >=80) evalúa
a True, por lo que las instrucciones
asociadas a él se ejecutan. La condición asociada con la segunda sentencia if(calif >= 90) también evalúa a True, por lo
que las instrucciones asociadas a él también son ejecutadas.
If’s anidados
Es posible colocar una sentencia if dentro del
cuerpo de otra sentencia if. Por ejemplo:
La sentencia anterior puede ser simplificada
eliminando un poco de la anidación. El primer mensaje es mostrado solo cuando
ambas condiciones son True. El
segundo mensaje es mostrado únicamente cuando la primer condición evalúa a True y la segunda condición evalúa a False. Lo siguiente es equivalente al código
anterior:
Hasta aquí el tercer tutorial de esta serie, a partir de ahora prometo adentrarnos más en instrucciones y no tanto en tipos (considero que hemos visto los fundamentales, de ser necesario veremos algún otro como parte de algún ejercicio), y de ésta manera podremos pisar un poquito el acelerador y empezar a tratar temas mas interesantes. Pero bueno, ya llegaremos a eso, mientras por la punta del iceberg tenemos que empezar ¿o no?
¡Saludos!
No hay comentarios.:
Publicar un comentario