Python – Capítulo 7: Opciones múltiples con elif

Objetivo: mostrar cómo ampliar con elif la estructura if … else en Python para la toma de decisiones múltiples.

En la última sesión de Python aprendimos cómo tratar una dicotomía: si una condición se cumple haz esto; en caso contrario, haz esto otro.

Pero, ¿y si debemos gestionar diversas opciones?

La claúsula elif dentro de la estructura if nos permite resolver este problema.

Observa su utilización en el siguiente ejemplo:


# coding=latin-1
valor = input('Introduce un número del 1 al 6: ')
if int(valor) == 1:
    print('El dado rueda..., ha salido el UNO')
elif int(valor) == 2:
    print('La suerte está echada..., ha salido el DOS')
elif int(valor) == 3:
    print('El dado nos muestra... un TRES')
elif int(valor) == 4:
    print('Increíble pero cierto... ha salido un CUATRO')
elif int(valor) == 5:
    print('Si esto fuera el parchís sacarías ficha. Ha salido el CINCO')
elif int(valor) == 6:
    print('Enhorabuena, has sacado el valor más alto del dado, el SEIS')
else:
    print('Lo siento, el dado no puede devolver ese valor')

El ejemplo es ilustrativo por sí solo: nos solicita la introducción de un número del 1 al 6 y en función del valor que hayamos facilitado realizará una tarea u otra.

Observa el uso de else, al final, para el caso contrario general en el que no se haya cumplido ninguna de las otras condiciones (por haber introducido un valor fuera del rango indicado).

La palabra elif no es más que una forma simplificada de else if y estrictamente no sería necesaria. Cualquier decisión múltiple se reduce, en última instancia, a un conjunto de decisiones binarias. La ventaja de utilizar elif es que nos permite tener el código más claro visualmente, sin las indentaciones que se producirían tras cada decisión binaria.

Javier Montero Gabarró


Fecha de la última revisión: 12 de agosto de 2012


Python – Capítulo 7: Opciones múltiples con elif


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.

Python – Capítulo 5: Tomando decisiones

Objetivo: introducir la secuencia de control if para el control de flujo de un programa en Python.

Hasta ahora hemos desarrollado programas en los que el flujo era secuencial, ejecutando las instrucciones una tras otra desde la primera a la última.

En el ejemplo de hoy ilustraremos la forma más básica de instrucción condicional. En función del cumplimiento o no de una determinada condición, el programa tomará una dirección u otra.

Vamos a desarrollar una aplicación sencilla que realizará lo siguiente:

– Nos pedirá que introduzcamos nuestro nombre de pila.
– Si el nombre introducido es «Javier», responderá «Hola, tocayo».
– A continuación nos pedirá que introduzcamos el apellido.
– Finalizará mostrando nuestro nombre completo.


nombre = input('Introduce tu nombre de pila: ')
if nombre == 'Javier':
    print('Hola, tocayo')
apellido = input('Introduce tu apellido: ')
print(nombre, apellido)

Copia este código en un fichero con extensión .py y ejecútalo del siguiente modo:

python tocayo.py

Para que se cargue, deberás tener Python dentro del path de búsqueda.

Prueba a lanzarlo varias veces. En una de ellas, introduce como nombre Javier y observa que se comporta del modo previsto.

Analicemos el código detenidamente.

La primera instrucción


nombre = input('Introduce tu nombre de pila: ')

no depara ningún misterio a estas alturas: aparece un texto incitándote a introducir tu nombre, que quedará almacenado en la variable nombre.


if nombre == 'Javier':
    print('Hola, tocayo')

Aquí llega la posible bifurcación con la evaluación de la condición.

Si la variable nombre guarda como valor ‘Javier’, entonces se imprimirá Hola, tocayo.

El doble signo igual es el operador de igualdad, empleado en las comparaciones. Se utiliza el doble igual para distinguirlo del operador de asignación de variables que ya conocemos. Es un error común confundir ambos tipos de operadores.

Finalizada la condición, terminamos el if con dos puntos (:) y, debajo, indicamos la instrucción o instrucciones que se ejecutarán si se cumple la condición.

Toma nota de la indentación del código tras los dos puntos. Esto es absolutamente necesario: La indentación sirve para delimitar bloques. En este caso, indican sin confusión el conjunto de instrucciónes concretas que se ejecutarán si la condición del if es cierta.

El número de espacios a indentar es arbitrario, puedes utilizar el que desees. Pero has de ser consistente y usar siempre el mismo. Te recomiendo, también, que no mezcles espacios con tabuladores.

En el caso de que el nombre coincida se imprimirá Hola, tocayo. Si no coincide, se ignorará esa instrucción y no se ejecutará el contenido del bloque if.

Se haya ejecutado o no el bloque del if, el programa continúa con las siguientes instrucciones:


apellido = input('Introduce tu apellido: ')
print(nombre, apellido)

Nos pedirá el apellido y, continuación, imprimirá nuestro nombre completo.

Observa el uso de print para mostrar las dos variables tipo string en el mismo comando, separándolas por un espacio en blanco (comportamiento por defecto).

Es importante que te asegures de comprender cada uno de estos programas básicos perfectamente, pues serán los ladrillos que te permitirán acometer desarrollos más serios y complejos posteriormente.

Javier Montero Gabarró


Fecha de la última revisión: 4 de agosto de 2012


Python – Capítulo 5: Tomando decisiones


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.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies