大家好,我是白菜胡萝丸子
人生苦短,Python当歌


项目导入
版本3.0:在版本2.0的基础上改造程序,BMR值的输出要带单位,用户能否将数值在一行输入
项目分析—理清思路
- 分析问题:分析问题的计算部分
- 明确问题:划分问题的输入、处理和输出部分(IPO)
- 设计算法:计算部分的核心
请尝试画思维导图
知识点学习–万丈高楼平地起
- 字符串的分隔
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
输入的基本信息用逗号隔开
性别,身高,体重,年龄:男,180,68,23
这位180.0cm,68.0kg,23岁的男士的BMR为1741.1999999999998
这是程序的第 1 次运行
-----------------------
您好,您是否选择运行程序,是-y,否-n:y
输入的基本信息用逗号隔开
性别,身高,体重,年龄:女,172,48,21
这位172.0cm,48.0kg,21岁的女士的BMR为1326.6999999999998
这是程序的第 2 次运行
-----------------------
您好,您是否选择运行程序,是-y,否-n:n
对不起,程序跳出
Process finished with exit code 0
更上一层楼–让程序进化一点点
如果用户不按照提示的信息输入,程序会无法运行,那么应该怎么处理?
本文介绍了如何在Python中开发一个基础代谢率(BMR)计算程序的版本3.0,强调了代码改进,包括输出带单位和用户在一行内输入数值的功能。文章详细讲解了问题分析、算法设计、字符串分隔和列表操作,并提供了代码示例及执行结果。

6082

被折叠的 条评论
为什么被折叠?



