Grip Strength Calculator
Evaluate your grip strength and find your percentile by age and gender.
| GripStrengthCalculator.category | GripStrengthCalculator.male20_29 | GripStrengthCalculator.female20_29 |
|---|---|---|
| Excellent | â„ 56 kg | â„ 36 kg |
| Good | â„ 51 kg | â„ 32 kg |
| Average | â„ 44 kg | â„ 27 kg |
| Below Average | â„ 38 kg | â„ 22 kg |
| Poor | â„ 0 kg | â„ 0 kg |
HĂ€ufig gestellte Fragen
Code-Implementierung
def evaluate_grip_strength(kg: float, age: int, gender: str) -> dict:
"""
Evaluate grip strength percentile by age and gender.
Norms based on published research (mean ± SD in kg).
Returns rating category.
"""
# [mean, excellent_threshold, above_avg, average, below_avg]
norms = {
"male": {
(20, 29): [54, 64, 59, 52, 44],
(30, 39): [56, 68, 60, 54, 46],
(40, 49): [54, 66, 58, 52, 44],
(50, 59): [51, 62, 55, 48, 41],
(60, 69): [46, 56, 50, 44, 36],
(70, 120): [39, 48, 42, 36, 29],
},
"female": {
(20, 29): [31, 38, 34, 29, 24],
(30, 39): [32, 39, 35, 30, 25],
(40, 49): [31, 38, 34, 29, 24],
(50, 59): [29, 36, 32, 27, 22],
(60, 69): [26, 32, 28, 24, 19],
(70, 120): [22, 28, 24, 20, 15],
},
}
thresholds = None
for (lo, hi), vals in norms.get(gender.lower(), {}).items():
if lo <= age <= hi:
thresholds = vals
break
if not thresholds:
return {"error": "Age/gender out of supported range"}
_, excellent, above_avg, average, below_avg = thresholds
if kg >= excellent:
rating = "Excellent"
elif kg >= above_avg:
rating = "Above Average"
elif kg >= average:
rating = "Average"
elif kg >= below_avg:
rating = "Below Average"
else:
rating = "Poor"
return {"grip_kg": kg, "rating": rating, "age": age, "gender": gender}
print(evaluate_grip_strength(55, 35, "male"))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.