当前位置:   article > 正文

Python快速实现BMI(身体质量指数)计算器(窗口界面形式)_python身体bmi

python身体bmi

BMI是身体质量指数(Body Mass Index)的缩写,是一种衡量人体肥胖程度的指标。它是根据人的身高和体重计算得出的,公式为:

BMI = 体重(kg)/ 身高^2(m)

其中,体重以千克为单位,身高以米为单位。根据计算结果,可以将人的体型分为偏瘦、正常、超重和肥胖四个等级。

BMI指数的范围和对应的等级如下:

  • BMI < 18.5,偏瘦
  • 18.5 <= BMI < 24.9,正常
  • 24.9 <= BMI < 29.9,超重
  • BMI >= 30,肥胖
     

 完整源码如下:

  1. import tkinter as tk
  2. from tkinter import messagebox
  3. def calculate_bmi():
  4. try:
  5. height = float(height_entry.get()) / 100 # 转换为米
  6. weight = float(weight_entry.get())
  7. bmi = weight / (height * height)
  8. bmi = round(bmi, 1) # 保留一位小数
  9. if bmi < 18.5:
  10. category = "偏瘦"
  11. range_info = "偏瘦范围: < 18.5"
  12. elif bmi < 24.9:
  13. category = "正常"
  14. range_info = "正常范围: 18.5 - 24.9"
  15. elif bmi < 29.9:
  16. category = "超重"
  17. range_info = "超重范围: 25 - 29.9"
  18. else:
  19. category = "肥胖"
  20. range_info = "肥胖范围: >= 30"
  21. result_label.config(text=f"BMI指数: {bmi}")
  22. category_label.config(text=f"等级: {category}")
  23. range_label.config(text=range_info)
  24. except ValueError:
  25. messagebox.showerror("错误", "请输入有效的身高和体重!")
  26. # 创建窗口
  27. window = tk.Tk()
  28. window.title("BMI指数计算")
  29. window.geometry("600x400")
  30. # 创建标签和输入框
  31. height_label = tk.Label(window, text="身高(cm):", font=("Arial", 14))
  32. height_label.pack()
  33. height_entry = tk.Entry(window, font=("Arial", 14))
  34. height_entry.pack()
  35. weight_label = tk.Label(window, text="体重(kg):", font=("Arial", 14))
  36. weight_label.pack()
  37. weight_entry = tk.Entry(window, font=("Arial", 14))
  38. weight_entry.pack()
  39. # 创建计算按钮
  40. calculate_button = tk.Button(window, text="计算", command=calculate_bmi, font=("Arial", 14))
  41. calculate_button.pack()
  42. # 创建结果标签
  43. result_label = tk.Label(window, text="BMI指数: ", font=("Arial", 16, "bold"))
  44. result_label.pack()
  45. category_label = tk.Label(window, text="等级: ", font=("Arial", 16, "bold"))
  46. category_label.pack()
  47. range_label = tk.Label(window, text="", font=("Arial", 14))
  48. range_label.pack()
  49. # 运行窗口
  50. window.mainloop()

运行结果如下,身高已在计算过程中转换为米,此处是为了更方便地输入:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/418477
推荐阅读
相关标签
  

闽ICP备14008679号