6 nov. 2016

Python 07. Edad y piropeador (if...and, if...else)


En este apartado vamos a profundizar un poco en las ordenes condicionales, ampliando lo que conocemos de la orden if y  usando la orden else.

Vamos a hacer un programa en el que se preguntará la edad al jugador y se creará una frase con el nombre del usuario y una palabra diferente en función del rango en que se encuentre la edad.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#Un programa para la edad

print ('Hola, ¿Cómo te llamas?')
nombre=input()

print('Hola, '+nombre+', ¿Cuantos años tienes?')
edad=input()
edad=int(edad)

if edad<13:
    print(nombre+', eres un niño')
if edad>=13 and edad<18:
    print(nombre+', eres un adolescente')
if edad>=18 and edad<30:
    print(nombre+', eres un joven')
if edad>=30 and edad<65:
    print(nombre+', eres un adulto')
if edad>=65:
    print(nombre+', eres un jubilado')


El resultado deberá ser algo coma esto:

Por partes:

Las lineas 1 a 4 ya sabemos  que son la presentación y la introducción del nombre por parte del usuario.

1. #Un programa para la edad
2. 
3. print ('Hola, ¿Cómo te llamas?')
4. nombre=input()

Las lineas 6-8 también te serán conocidas, empleamos exactamente el mismo código que en el apartado anterior, Es importante  ejecutar la función edad=int(edad), que sirve para transformar el valor introducido por el jugador en un número entero. El contenido que se obtiene de la función input() siempre es una cadena (string), esto quiere decir que aunque se pongan números el ordenador los tratará como texto. Si no hacemos a transformación de cadena a entero (integer), Python no será capaz de ejecutar operaciones matemáticas con el valor introducido.

6. print('Hola, '+nombre+', ¿Cuantos años tienes?')
7. edad=input()
8. edad=int(edad)

Las lineas 10-19 son las que contienen el núcleo del programa. Compara la edad introducida por el usuario con valores que nosotros le definimos y, en función de ellos, dan un resultado. la orden and me permite establecer rangos. Al poner and se deben cumplir las dos condiciones (la que está antes y la de después del and)


10. if edad<13:
11.     print(nombre+', eres un niño')
12. if edad>=13 and edad<18:
13.     print(nombre+', eres un adolescente')
14. if edad>=18 and edad<30:
15.     print(nombre+', eres un joven')
16. if edad>=30 and edad<65:
17.     print(nombre+', eres un adulto')
18. if edad>=65:
19.     print(nombre+', eres un jubilado')


If quiere decir "si", en la manera de "pensar" de Python funciona, más o menos, del siguiente modo:

Python va escogiendo entre dos valores de manera escalonada, y nosotros tenemos que definirle esos valores. 

Otro ejemplo.
En este caso tenemos el programa piropeador para hombres y mujeres.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#piropeador para hombre y mujer

print ('Hola, ¿Cómo te llamas?')
nombre=input()

print('Hola, '+nombre+', ¿Eres un hombre o una mujer?')
sexo=input()

if sexo=='hombre':
    print(nombre+', eres muy guapo')
else:
    print(nombre+', eres muy guapa')



Else quiere decir algo como "en cualquier otro caso", y se aplica cuando no se cumple la condición que se ha indicado en el if
Lo que hace la orden es:
if  <condición>:
    <hacer algo si se da la condición>
else:
     <hacer otra cosa si no se da la condición>

Ejercicios:

  1. Modifica los rangos y mensajes del programa de la edad.
  2. Añade un mensaje que salga si la edad es mayor de 100 años y que diga "Eres Matusalén"
  3. Haz un programa que de mensajes (eres un poco pequeño, tienes una estatura media, eres muy alto) sobre la altura que se introduzca
  4. Modifica el programa del apartado anterior (Python 6) para que, en vez de dar la pista de "demasiado alto" o "demasiado bajo", dé la pista "caliente", "templado" o "frío" según esté de cerca el número introducido respecto al número secreto? Seguramente necesitarás de la orden abs(x), que devuelve el valor absoluto (sin tener en cuenta el signo) de x.

0 comentarios:

Twitter Facebook Tuenti LinkedIn gmail Favorites More