Python小程序(3)--BMR(基础代谢率)计算器

基础代谢率(Basal Metabolic Rate,简称BMR)是指:我们在安静状
态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在
这个基础上。
• 计算公式:
BMR(男) = (13.7×体重(kg)) + (5.0×身高(cm)) - (6.8×年龄) + 66
BMR(女) = (9.6×体重(kg)) + (1.8×身高(公分)) - (4.7×年龄) + 655

1.0版本

'''
功能:BMR计算器
版本:1.0
'''

def main ():
    #性别
    gender = "男"

    #体重(KG)
    weight = 70

    #身高(cm)
    height = 175

    #年龄
    age = 25

    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:
        print('基础代谢率:',bmr)
    else:
        print('性别填写有误')

if __name__ == "__main__":
    main()

2.0版本

增加功能:(1)增加用户输入功能

(2)持续运行直到用户选择退出

'''
功能:BMR计算器
版本:2.0
'''

def main ():
    y_or_n = input('是否退出程序(y/n)')
    while y_or_n != 'y':
        #性别
        gender = input('输入性别:')

        #体重(KG)
        weight = float(input('体重kg'))

        #身高(cm)
        height = float(input('身高cm'))

        #年龄
        age = int(input('年龄'))

        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:
            print('基础代谢率:',bmr)
        else:
            print('性别填写有误')

        print() #输出空行
        y_or_n = input('是否退出程序(y/n)')

if __name__ == "__main__":
    main()

3.0版本

增加功能:用户可以在一行输入所有信息,带单位的信息输出

字符串分割
str.split(), https://docs.python.org/3/library/stdtypes.html#str.split

字符串格式化输出,使用{}占位
str.format()
如:
‘{}公斤, {}厘米’.format(70, 175)
重复输出时可以使用数字标记顺序
‘{0}公斤, {1}厘米, {0}公斤’.format(70, 175)

'''
功能:BMR计算器
版本:3.0
'''

def main ():
    y_or_n = input('是否退出程序(y/n)')
    while y_or_n != 'y':
        print("请输入以下信息,用空格分割")
        input_str = input("性别 体重(kg) 身高(cm) 年龄")
        str_list = input_str.split(' ')
        gender = str_list [0]
        weight = float(str_list [1])
        height = float(str_list [2])
        age = int(str_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:
            print("您的性别:{},体重:{}公斤,身高{}厘米,年龄{}岁".format(gender,weight,height,age))
            print('基础代谢率:{}大卡'.format(bmr))
        else:
            print('性别填写有误')

        print() #输出空行
        y_or_n = input('是否退出程序(y/n)')

if __name__ == "__main__":
    main()

4.0版本

增加功能:处理异常操作

 

'''
功能:BMR计算器
版本:4.0
'''

def main ():
    y_or_n = input('是否退出程序(y/n)')
    while y_or_n != 'y':
        print("请输入以下信息,用空格分割")
        input_str = input("性别 体重(kg) 身高(cm) 年龄")
        str_list = input_str.split(' ')
        try:
            gender = str_list [0]
            weight = float(str_list [1])
            height = float(str_list [2])
            age = int(str_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:
                print("您的性别:{},体重:{}公斤,身高{}厘米,年龄{}岁".format(gender,weight,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()

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值