forked from Jaanai-Lu/Statistics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
026.3 bmr_v4.0.py
63 lines (54 loc) · 2.42 KB
/
026.3 bmr_v4.0.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""
作者:陆震
功能:BMR计算器
版本:4.0
日期:22/05/2019
3.0 新增功能:用户可以在一行输入所有信息,实现带单位的信息输出
4.0 新增功能:处理异常操作
"""
# 基础代谢率(BMR: Basal Metabolic Rate):
# 在安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上
# 计算公式:
# 男:BMR = 13.7*体重(kg)+5.0*身高(cm)-(6.8*年龄)+ 66
# 女:BMR = 9.6*体重(kg)+1.8*身高(cm)-(4.7*年龄)+ 655
def main():
"""
主函数
"""
y_or_n = input('是否退出程序(y/n)?')
while y_or_n == 'n':
print('请输入以下信息,用空格分隔')
input_string = input('性别 体重(kg) 身高(cm) 年龄:')
# input_string.find(' ') # 寻找空格,另一方法
string_list = input_string.split(' ') # 字符串分割,使用split函数之后,字符串转换为list类型,需要赋值给一个新的变量
# 异常处理机制:引入异常处理机制可以用来解决程序运行时的错误
try:
gender = string_list[0]
weight = float(string_list[1])
height = float(string_list[2])
age = int(string_list[3])
if gender == '男':
# 男性
bmr = 13.7 * weight + 5.0 * height - 6.8 * age + 66
elif gender == '女':
# 女性
bmr = 9.6 * weight + 1.8 * height - 4.7 * age + 655
else:
bmr = -1
if bmr != -1:
# 字符串格式化输出,使用 {} 占位
# 重复输出时可以使用数字标记顺序,{} 中的数字代表的是format括号中变量的索引值
print('您的性别:{1},体重:{0}(kg),身高:{2}(cm),年龄:{3}'.format(weight, gender, height, age))
print('您的基础代谢率为:{}(大卡)'.format(bmr))
else:
print('暂不支持该性别')
except ValueError:
print('请输入正确的信息!')
except IndexError:
print('输入的信息过少!')
except: # 所有其他错误
print('程序异常!')
print() # 参数为空时,输出一行空行
y_or_n = input('是否退出程序(y/n)?')
if __name__ == '__main__':
main()