bmi.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. """
  2. BMI指数计算
  3. ^^^^^^^^^^^
  4. 计算 `BMI指数 <https://en.wikipedia.org/wiki/Body_mass_index>`_ 的简单应用
  5. :demo_host:`Demo地址 </?pywebio_api=bmi>` `源码 <https://github.com/wang0618/PyWebIO/blob/dev/demos/bmi.py>`_
  6. """
  7. from pywebio import start_server
  8. from pywebio.input import *
  9. from pywebio.output import *
  10. from pywebio.session import set_env
  11. def main():
  12. """BMI Calculation
  13. 计算BMI指数的简单应用
  14. """
  15. put_markdown("""# BMI指数
  16. [`BMI指数`](https://baike.baidu.com/item/%E4%BD%93%E8%B4%A8%E6%8C%87%E6%95%B0/1455733)(Body Mass Index,BMI),是用体重千克数除以身高米数的平方得出的数字,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
  17. 成年人的BMI值处于以下阶段
  18. | 体形分类 | BMI值范围 |
  19. | -------- | --------- |
  20. | 极瘦 | BMI<14.9 |
  21. | 偏瘦 | 14.9≤BMI<18.4 |
  22. | 正常 | 18.4≤BMI<22.9 |
  23. | 过重 | 22.9≤BMI<27.5 |
  24. | 肥胖 | 27.5≤BMI<40 |
  25. | 非常肥胖 | BMI≥40 |
  26. ## BMI指数计算器
  27. 本程序的源代码[链接](https://github.com/wang0618/PyWebIO/blob/dev/demos/bmi.py)
  28. """, strip_indent=4)
  29. info = input_group('计算BMI:', [
  30. input("请输入你的身高(cm)", name="height", type=FLOAT),
  31. input("请输入你的体重(kg)", name="weight", type=FLOAT),
  32. ])
  33. BMI = info['weight'] / (info['height'] / 100) ** 2
  34. top_status = [(14.9, '极瘦'), (18.4, '偏瘦'),
  35. (22.9, '正常'), (27.5, '过重'),
  36. (40.0, '肥胖'), (float('inf'), '非常肥胖')]
  37. for top, status in top_status:
  38. if BMI <= top:
  39. put_markdown('你的 BMI 值: `%.1f`,身体状态:`%s`' % (BMI, status))
  40. break
  41. if __name__ == '__main__':
  42. start_server(main, debug=True, port=8080, cdn=False)