Objetivo: presentar la claúsula ELSE en Python, complemento de IF para el caso en que no se cumpla la condición.
El otro día tuvimos ocasión de conocer la estructura if, que nos permitía reconducir el rumbo de ejecución de un programa en función del cumplimiento o no de una determinada condición.
Recordemos el programa anterior:
nombre = input('Introduce tu nombre de pila: ')
if nombre == 'Javier':
print('Hola, tocayo')
apellido = input('Introduce tu apellido: ')
print(nombre, apellido)
En el supuesto de que el nombre introducido fuera Javier, se ejecutaba la función print indentada, mostrándonos el mensaje Hola, tocayo.
Pero, ¿y si deseamos que el programa realice algo en caso contrario, es decir, si la condición no se cumple?
La claúsula else (que podemos traducir como en caso contrario) sirve para este propósito.
Modifiquemos el programa anterior para que, si el nombre no coincide, nos muestre un mensaje reflejándolo.
nombre = input('Introduce tu nombre de pila: ')
if nombre == 'Javier':
print('Hola, tocayo')
else:
print('No, no te llamas como yo')
apellido = input('Introduce tu apellido: ')
print(nombre, apellido)
Aprecia los dos puntos después de la palabra else. Al igual que después de la condición del if, es un error común olvidarlos.
Observa también la indentación en el print después del else. Recuerda que esa indentación es la que indicará el comienzo y el fin del bloque de instrucciones a ejecutar. En este ejemplo, se ha tratado de una única instrucción; si hubiese sido preciso ejecutar varias, simplemente las colocaríamos debajo con el mismo nivel de sangrado.
Ten presente, a la hora de indentar, que los tabuladores son diferentes de los espacios, aunque en la práctica aparenten la misma separación. Sé siempre coherente y elige uno u otro, pero no los mezcles.
Ilustremos la estructura if… else con un nuevo ejemplo con el que presentaremos, además, otros aspectos del lenguaje de programación Python.
# coding=latin-1
dato = input('Introduce un número entero: ')
if int(dato) % 2 == 0:
print('El número introducido es par')
print('La mitad es', int(dato)//2, ', exactamente')
else:
print('El número introducido es impar')
Este programa nos instará a introducir un número y nos dirá si es par o impar. En el primer caso, calculará, además, su mitad.
El comentario en la primera línea tiene un significado especial:
# coding=latin-1
He tenido que incluirlo para que el intérprete reconociera los acentos propios de nuestro idioma. En determinados entornos (como IDLE, que presentaremos más adelante) esto no es necesario, pero en la máquina Windows que he empleado para redactar este artículo la codificación no era la adecuada.
Fijémonos en el comienzo de la estructura if:
if int(dato) % 2 == 0:
La variable dato, recogida a través de input, es del tipo string, es decir, una cadena de caracteres. Para poder realizar operaciones aritméticas con ella es preciso convertir su valor a una cifra numérica. La función int() se ocupa de este cometido, devolviendo un valor entero.
El programa, tal como está escrito, no realiza ningún tipo de comprobación de errores a la hora de introducir el valor y espera nuestra cooperación. Si en vez de introducir un número facilitamos una cadena de caracteres, el programa devolverá un error justo en la línea en la que trata de convertirla a número entero.
El operador % nos da el resto de la división entera (también conocido como operador módulo). Si el resto de la división por dos es cero, sabremos que el número es par y se ejecutarán los dos print que aparecen a continuación. Fíjate cómo la indentación muestra perfectamente el comienzo y el final del bloque. En la segunda de las instrucciones el programa calculará la mitad del valor introducido y nos la mostrará.
Observa con detalle la expresión:
int(dato)//2
El doble signo de división significa división entera y nos devolverá únicamente la parte entera de la división (el cociente).
En caso contrario, si el resto de la división no es cero el programa nos mostrará un mensaje en pantalla indicándonos que el número introducido es impar.
Espero que hayas comprendido la lógica de la estructura if … else. En la próxima entrega le daremos una nueva vuelta de tuerca.
Javier Montero Gabarró
Fecha de la última revisión: 9 de agosto de 2012
Python – Capítulo 6: En caso contrario
El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)
El Club del Autodidacta
Consulta el índice completo de artículos relacionados con Python.