🛠️ToolsShed

Calculadora de grasa corporal

Estima el porcentaje de grasa corporal usando el método de la Marina de EE. UU.

La calculadora de grasa corporal estima tu porcentaje de grasa corporal usando métodos de medición validados que no requieren equipos costosos. El método más común usado aquí es el Método de la Marina de EE. UU., que usa medidas de cuello, cintura y cadera junto con la altura.

Introduce tu género, altura y las medidas de circunferencia requeridas en centímetros o pulgadas. La herramienta calcula tu porcentaje estimado de grasa corporal y lo compara con rangos saludables establecidos por el Consejo Americano de Ejercicio (ACE).

El porcentaje de grasa corporal se considera un mejor indicador de fitness que el IMC solo, pero también tiene margen de error. Las mediciones consistentes a lo largo del tiempo son más valiosas que cualquier lectura individual.

Preguntas Frecuentes

Implementación de Código

import math

def navy_body_fat_male(waist_cm: float, neck_cm: float, height_cm: float) -> float:
    """
    US Navy body fat formula for males.
    %BF = 86.010 * log10(waist - neck) - 70.041 * log10(height) + 36.76
    """
    return 86.010 * math.log10(waist_cm - neck_cm) - 70.041 * math.log10(height_cm) + 36.76

def navy_body_fat_female(waist_cm: float, hip_cm: float, neck_cm: float, height_cm: float) -> float:
    """
    US Navy body fat formula for females.
    %BF = 163.205 * log10(waist + hip - neck) - 97.684 * log10(height) - 78.387
    """
    return 163.205 * math.log10(waist_cm + hip_cm - neck_cm) - 97.684 * math.log10(height_cm) - 78.387

def classify_body_fat_male(bf_percent: float) -> str:
    if bf_percent < 6:   return "Essential fat"
    if bf_percent < 14:  return "Athletes"
    if bf_percent < 18:  return "Fitness"
    if bf_percent < 25:  return "Acceptable"
    return "Obese"

def classify_body_fat_female(bf_percent: float) -> str:
    if bf_percent < 14:  return "Essential fat"
    if bf_percent < 21:  return "Athletes"
    if bf_percent < 25:  return "Fitness"
    if bf_percent < 32:  return "Acceptable"
    return "Obese"

# Male example
waist, neck, height = 85.0, 37.5, 178.0
bf_male = navy_body_fat_male(waist, neck, height)
print(f"Male example: waist={waist}cm, neck={neck}cm, height={height}cm")
print(f"  Body fat: {bf_male:.1f}% ({classify_body_fat_male(bf_male)})")

# Female example
waist_f, hip_f, neck_f, height_f = 72.0, 95.0, 33.5, 165.0
bf_female = navy_body_fat_female(waist_f, hip_f, neck_f, height_f)
print(f"\nFemale example: waist={waist_f}cm, hip={hip_f}cm, neck={neck_f}cm, height={height_f}cm")
print(f"  Body fat: {bf_female:.1f}% ({classify_body_fat_female(bf_female)})")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.