Curso de Python VI

python_header

Es hora de empezar a utilizar los conceptos que hemos adquirido en pequeños programas. Iremos implementando lo aprendido y aumentaremos el nivel de dificultad gradualmente para ir adquiriendo fluidez en el desarrollo.

Cálculo de IMC con Python

Vamos a crear una calculadora de índice de masa corporal personalizado en unas pocas líneas. Ésta recogerá diferentes datos, hará el cálculo y lo mostrará. Finalmente preguntaremos si quiere volver a repetirlo hasta que el usuario decida cerrar la calculadora.

Desarrollo

Lo primero que haremos será el mensaje de bienvenida(línea 3). Recordemos que \n hará un salto de línea para que no aparezca tan pegada la línea siguiente. En la línea 5 y 6 preguntaremos al usuario su peso y altura:

python1

Ejecutamos y vemos que lo realizar correctamente:

python2

 

Un truco que te va a ayudar a resolver algún que otro problema es ir imprimiendo el contenido de variables para saber que las ha almacenado correctamente. Por ejemplo:

python3

python4

Comprobado el contenido de las variables borramos la línea 9. Esto lo obviaré de aquí en adelante, ya que es a criterio del programador y yo por ejemplo solo lo uso cuando tengo algún problema.

Almacenados el peso y la altura, vamos a realizar el cálculo de IMC. Éste lo almacenaremos en una variable y posteriormente lo imprimiremos. El símbolo ** significa ‘elevado a’ (en este caso a 2):

python10

python6

Hemos tenido un error a la hora del cálculo. Nos dice que no puede dividir 2 strings (lógico). Recordemos que a la hora de recoger datos del usuario éstos se almacenan directamente como strings. Para solucionar esto solo debemos convertir el dato antes de almacenarlo con int(). En las líneas 8 y 9 imprimiremos el tipo de dato que almacenan las variables y así nos aseguramos que son tipo ‘int’. Este tipo de comprobaciones también son a criterio del programador y se obviará de aquí en adelante:

python11

python8

 

Ya tenemos todo arreglado, así que vamos a ver como queda imprimiendo la variable calculoIMC:

python12

El cálculo ha sido el correcto pero le hemos pasado la altura en cm y la fórmula necesita la altura en metros. Ésto se soluciona simplemente creando otra variable con la altura en metros:

python13

python14

 

Ahora si tenemos nuestro IMC, con demasiados decimales eso sí, pero nada que no soluciones nuestra función round(). Recordemos que necesita dos parámetros, uno será el dato a redondear y otro el número de decimales que queremos:

python15

python16

Calculado el IMC, éste nos da un dato que a un usuario no le diría nada. Vamos a interpretar los datos con la ayuda de if:

python17

python18

Parece que con los datos que hemos cogido de ejemplo tendríamos sobrepeso. Para finalizar vamos a personalizar nuestra calculadora y añadir un bucle para que se repita hasta que el usuario decida:


python21

El bucle while True hará que el código al menos se ejecute una vez y en las líneas 26-30 según la respuesta del usuario continua la ejecución del programa (continue) o sale del bucle  y finaliza dicha ejecución (break). Veamos las dos posibilidades:

python22

Repitiendo el cálculo

python23

Saliendo del programa

 

Ya podemos decir que hemos creado nuestra calculadora IMC personalizada. En el próximo artículo veremos como trabajar con archivos txt para ir guardando datos (como pueden ser nuestros cálculos de IMC) y como leerlos para poder trabajar con ellos.

 

Un salu2!

Curso de Python I
Curso de Python II
Curso de Python III
Curso de Python IV
Curso de Python V
Curso de Python VI
Curso de Python VII
Curso de Python VIII
Curso de Python IX
Curso de Python X
Curso de Python XI
Curso de Python XII
Curso de Python XIII
Curso de Python XIV