Python案例3—计算基础代谢率V_3.0

本文介绍了如何在Python中开发一个基础代谢率(BMR)计算程序的版本3.0,强调了代码改进,包括输出带单位和用户在一行内输入数值的功能。文章详细讲解了问题分析、算法设计、字符串分隔和列表操作,并提供了代码示例及执行结果。

大家好,我是白菜胡萝丸子

人生苦短,Python当歌

坚持就是胜利
基础代谢率计算

项目导入

版本3.0:在版本2.0的基础上改造程序,BMR值的输出要带单位,用户能否将数值在一行输入

项目分析—理清思路

  1. 分析问题:分析问题的计算部分
  2. 明确问题:划分问题的输入、处理和输出部分(IPO)
  3. 设计算法:计算部分的核心
    请尝试画思维导图

知识点学习–万丈高楼平地起

  • 字符串的分隔
    str.split() : 利用Python中的split() 方法可以将字符串拆分成较小的子字符串列表。
    列表是Python中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置,或索引,第一个索
    引是0,第二个索引是1,依此类推。
  • 复习:字符串格式化输出,使用{}占位
    str.format()
    如: '{}公斤, {}厘米.format(70,175)
    重复输出时可以使用数字标记顺序,
    如: '{0}公斤,{1}厘米,{0}公斤.format(70,175)

上机编程–动动手,让程序运行起来

参照代码

"""
作者:白菜胡萝丸子
版本3.0:在版本2.0的基础上改造程序,BMR值的输出要带单位,用户能否将数值在一行输入
"""


def BMR_women(weight, height, age):
    BMR_women = 9.6 * weight + 1.8 * height - 4.7 * age + 655
    return BMR_women

def BMR_men(weight,height,age):
    BMR_men = 13.7 * weight + 5.0 * height - 6.8 * age + 66
    return BMR_men

def main():
    y_n = input('您好,您是否选择运行程序,是-y,否-n:')
    i = 0
    while y_n == 'y':
        print('输入的基本信息用逗号隔开')
        input_str = input('性别,身高,体重,年龄:')
        input_str_list = input_str.split(',')

        gender = input_str_list[0]
        height = float(input_str_list[1])
        weight = float(input_str_list[2])
        age = int(input_str_list[3])
        if gender == '男':
            bmr = BMR_men(weight, height, age)
            print('这位{}cm,{}kg,{}岁的{}士的BMR为{}'.format(height, weight, age, gender, bmr))
        elif gender == '女':
            bmr = BMR_women(weight, height, age)
            print('这位{}cm,{}kg,{}岁的{}士的BMR为{}'.format(height, weight, age, gender, bmr))
        else:
            print('暂不支持计算')

        i = i + 1
        print('这是程序的第', i, '次运行')
        print('-----------------------')
        y_n = input('您好,您是否选择运行程序,是-y,否-n:')
    print('对不起,程序跳出')


if __name__ == '__main__':
    main()

执行结果

您好,您是否选择运行程序,是-y,否-n:y
输入的基本信息用逗号隔开
性别,身高,体重,年龄:男,1806823
这位180.0cm,68.0kg,23岁的男士的BMR为1741.1999999999998
这是程序的第 1 次运行
-----------------------
您好,您是否选择运行程序,是-y,否-n:y
输入的基本信息用逗号隔开
性别,身高,体重,年龄:女,1724821
这位172.0cm,48.0kg,21岁的女士的BMR为1326.6999999999998
这是程序的第 2 次运行
-----------------------
您好,您是否选择运行程序,是-y,否-n:n
对不起,程序跳出

Process finished with exit code 0

更上一层楼–让程序进化一点点

如果用户不按照提示的信息输入,程序会无法运行,那么应该怎么处理?

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白菜胡萝丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值