版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanxingbudui/article/details/88071641
上一讲v2.0通过用户输入参数,计算BMR,但是每一个参数都是先提示了再输入。现在用户想在一行中将参数全部输入完,点击执行立刻可以得到计算结果。
那么,v3.0就是为了解决一行输入参数,以及友好型的带单位的信息输出。
"""
作者:lanxingbudui
功能:BMR计算器
版本:3.0
日期:20190302
新增功能:根据用户输入计算BMR;程序持续运行
新增功能:用户可以在一行输入所有信息,带单位的信息输出
"""
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('您的性别:{},体重:{}kg,身高:{}cm,年龄:{}岁'.format(gender, weight, height, age))
print('您的基础代谢率BMR:{} 大卡'.format(bmr))
else:
print('该版本暂时不支持改性别!')
print()
y_or_n = input('是否退出程序(y/n)?')
if __name__ == '__main__':
main()
说明1:如何将一行字符串,分割并且分别赋值给不同的参数,用到str.split()和str[]
说明2:在输出结果时,将得到的结果字符串格式化输出,使用{}占位。
str.format() 如:‘{}公斤,{}厘米’.format(70, 175)
重复输出时可以使用数字标:‘{0}公斤,{1}厘米,{1}厘米’.format(70, 175)
得到的结果为:70公斤,175厘米,175厘米