大家好,我是白菜胡萝丸子
人生苦短,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 + 655return BMR_womendef BMR_men(weight,height,age):BMR_men = 13.7 * weight + 5.0 * height - 6.8 * age + 66return BMR_mendef main():y_n = input('您好,您是否选择运行程序,是-y,否-n:')i = 0while 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 + 1print('这是程序的第', 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
更上一层楼–让程序进化一点点
如果用户不按照提示的信息输入,程序会无法运行,那么应该怎么处理?