Capítulo 23 - El condicional IF ELIF ELSE e INPUT, entrada de datos - Condicionales 3

Curso de Python desde cero


En muchas ocasiones vas a necesitar añadir más condiciones, no solo verdadero o falso. Para hacer esto, puedes añadir a tus bloques if múltiples condiciones elif. Tantas como necesites.

Voy a escribir un ejemplo parecido al del capítulo anterior, solo que esta vez, habrá unos rangos de edades, no solo mayor o menor de 18 años.

Aprovecho para enseñarte algo muy valioso también, input. Gracias a esto, podrás hacer que el usuario sea capaz de interactuar con tus programas introduciendo datos.

Código

edad = int(input('¿Cuál es tu edad?\n'))
if edad <= 0:
    print('Nadie puede tener esa edad.')
elif edad <= 1 and edad < 18:
    print('Eres menor de edad.')
elif edad <= 100:
    print('Eres mayor de edad.')
else:
    print('Edad no válida.')

Resultado

Vamos con calma, parece muy complicado pero no lo es.
Antes de nada, tengo que decirte que hay otras formas más "correctas" de escribir esto, pero no quiero liarte más, así que lo dejamos así por el momento.

En la variable edad estoy almacenando un valor introducido con el teclado por el usuario gracias al input, el cual le pregunta, ¿cuál es tu edad?
Debes introducir una edad (escribes un número con tu teclado y pulsas la tecla "enter").
Por defecto, el método input almacena los datos como strings, y puesto que en este caso queremos trabajar con integers, lo transformamos envolviéndolo con el int().
Si la edad introducida es menor o igual a cero devuelve esto:

Nadie puede tener esa edad.

En cambio, si es mayor o igual a 1 y a la vez (este es un nuevo operador (and) en el cuál se tienen que cumplir las dos condiciones a la vez) es menor que 18 años:

Eres menor de edad.

Pero, si la edad es superior a 18 o 18 hasta menos o igual a 100:

Eres mayor de edad.

Y siempre que no se cumpla ninguna de las condiciones anteriores, se ejecutará el else.

Te recomiendo que veas el vídeo al menos en estos capítulos que son un poco más difíciles, te ayudará a entender todo esto mejor.

Ejercicios de Python

40- Al siguiente código añádele un par de rangos de edad. Uno de 18 años hasta 45 y otro de más de 100 años hasta 120.

edad = int(input('¿Cuál es tu edad?\n'))
if edad <= 0:
    print('Nadie puede tener esa edad.')
elif edad <= 1 and edad < 18:
    print('Eres menor de edad.')
elif edad <= 100:
    print('Eres mayor de edad.')
else:
    print('Edad no válida.')

Recuerda que aunque no te lo pida, puedes y debes utilizar siempre print() para ir probando los resultados de todos los ejercicios.

Tendrás la solución a estos ejercicios en el siguiente capítulo. Puedes dejar tu posible solución en los comentarios, así ayudarás a otros o te podremos ayudar entre todos.

Solución del capítulo anterior

39- Corrige el siguiente condicional if else.

color = rojo

else color == rojo
Print "El color es rojo."
if color != rojo
Print "El color no es rojo."

Solución

Fallo 1: color = rojo

rojo es un string, por lo que debe ir entre comillas simples ('') o dobles ("").

Fallo 2: else antes que if.

Else nunca debe ir antes del if.

Fallo 3: else con condición. else color == rojo

Else no lleva condición. La lleva siempre el if. Else es para ejecutar algo en caso de que no se cumpla la condición del if, por lo que siempre está sujeto a este.

Fallo 4: print.

print() va siempre en minúsculas y con unos paréntesis (a partir de Python 3).

Fallo 5: dos condiciones.

En este caso, hay que elegir entre las dos condiciones (!= o ==), esto queda de tu elección, o color es igual a rojo o es diferente a rojo.

Fallo 6: indentación.

Es muy importante en Python tener la costumbre de indentar todo lo que lo requiera, ya que te va a dar error si no lleva las indentaciones necesarias. En este caso, los print() van indentados, ya que es código que se encuentra dentro de un bloque if o else.

Ya has visto la cantidad de fallos que se pueden producir en tan solo 5 líneas de código (podría haber más fallos incluso).

color = 'rojo'

if color == 'rojo':
    print("El color es rojo.")
else:
    print("El color no es rojo.")

Nota: el resultado puede variar según como lo hayas hecho, si te queda alguna duda, comenta tu solución y la revisaré.


Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.