Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] [PRACTICA] [IMC]

"""
Anna Júlia está creando un sistema para calcular el Índice de Masa Corporal (IMC) 
y proporcionar recomendaciones básicas. 
El programa debe recibir el peso y la altura de una persona y mostrar el valor del IMC, 
además de indicar si está por debajo del peso, con peso normal o por encima del peso. 
Crea un programa que reciba el peso (en kg) y la altura (en metros) y 
calcule el IMC usando la fórmula: IMC = peso / (altura ** 2)Luego, 
muestra el valor del IMC y un mensaje indicando si está por debajo del peso
(IMC < 18.5), peso normal (18.5 <= IMC < 25) o por encima del peso (IMC >= 25).
"""
informacion = [{"peso":"(kg)","altura":"(m)"}]
def mostrarEncabezado():
    print("=" * 35)
    print("=           CALCULANDO IMC        =")
    print("=" * 35 + "\n")

def obtenerPesoAltura()->int:
    peso = float(input("Digite su peso " + informacion[0]["peso"] + " "))
    altura = float(input("Digite su altura " + informacion[0]["altura"] + " "))
    return peso,altura

def calcularIMC(peso:float,altura:float)->float:
    imc = peso / (altura ** 2)
    print("Su IMC es " + str(round(imc,2)))
    return imc

def interpretarIMC(imc:float)->str:
    if imc < 18.5:
        mensaje = "Por debajo del peso."
    elif imc < 25:
        mensaje = "Tienes Peso normal."
    else:
        mensaje = "Por encima del peso."
    return mensaje

def main()->None:
    mostrarEncabezado()
    peso,altura = obtenerPesoAltura()
    imc = calcularIMC(peso,altura)
    print(interpretarIMC(imc))

if __name__ == "__main__":
    main()
1 respuesta

¡Hola Elmer, espero que estés bien!

Tu código para calcular el Índice de Masa Corporal (IMC) parece estar bien estructurado y cubre todos los requisitos del proyecto. A continuación, te hago algunos comentarios y sugerencias para asegurarte de que todo funcione correctamente:

  1. Función obtenerPesoAltura: Asegúrate de que el usuario ingrese valores numéricos válidos. Podrías considerar agregar un manejo de excepciones para evitar que el programa falle si el usuario ingresa un valor no numérico. Por ejemplo:

    def obtenerPesoAltura()->int:
        while True:
            try:
                peso = float(input("Digite su peso " + informacion[0]["peso"] + " "))
                altura = float(input("Digite su altura " + informacion[0]["altura"] + " "))
                return peso, altura
            except ValueError:
                print("Por favor, ingrese valores numéricos válidos.")
    
  2. Redondeo del IMC: Estás redondeando el IMC a dos decimales, lo cual es una buena práctica para mostrar un resultado más claro.

  3. Salida esperada: Asegúrate de que tu salida coincida con lo que se espera en el ejercicio. Tu código parece estar alineado con el ejemplo proporcionado.

  4. Pruebas: Prueba tu programa con diferentes valores de peso y altura para asegurarte de que todas las condiciones (por debajo del peso, peso normal, por encima del peso) se evalúan correctamente.

Si sigues estos pasos, tu programa debería funcionar sin problemas. Espero que estas sugerencias te sean útiles.

¡Espero haber ayudado y buenos estudios!