python 1.22 zyBooks实验室:表示训练过程中燃烧的卡路里

j2cgzkjk  于 2023-01-29  发布在  Python
关注(0)|答案(2)|浏览(209)

我是编程新手,还没有掌握窍门。我想我想多了。请指教。
下面的公式估算了一个人在运动时燃烧的平均卡路里,该公式基于一篇科学期刊文章(来源):
卡路里=((年龄x 0.2757)+(体重x 0.03295)+(心率x 1.0781)- 75.4991)x时间/ 8.368
编写一个程序,分别输入年龄(岁)、体重(磅)、心率(每分钟心跳次数)和时间(分钟),输出一个人燃烧的平均卡路里。
输出每个浮点值,小数点后两位,可以实现如下:

print('Calories: {:.2f} calories'.format(calories))

例如:如果输入为:

49
155
148
60

则输出为:

Calories: 736.21 calories

我的代码:

age = int(input())

weight = int(input())

heart_rate = int(input())

time = (input())

calories= ((age*0.2752) + (weight*0.03295) + (heart_rate*1.0781)-75.4991)*time/8.368

print('Calories: {:.2f} calories'.format(calories))
1qczuiv0

1qczuiv01#

你的代码已经很接近了,但问题是你还需要把time转换成一个数字,因为你试图在数学方程中使用它。现在你的代码试图用方程的这一部分把float乘以str,这在Python中是不允许的。

# 'time' is a string here
((age*0.2752) + (weight*0.03295) + (heart_rate*1.0781)-75.4991)*time

对于您来说,使用time = int(input()),您的代码将工作。
下面是一个版本的代码,它可以做到这一点,并打破了一些方程,使步骤/方程更清楚一些。
这也修正了你使用的公式中的一个错别字,你用age * 0.2752代替age * 0.2757

#!/usr/bin/env python3

if __name__ == "__main__":
    age = int(input("Age? "))
    weight = int(input("Weight? "))
    heart_rate = int(input("Heart Rate? "))
    time = int(input("Time? "))

    age_factor = age * 0.2757
    weight_factor = weight * 0.03295
    hr_factor = heart_rate * 1.0781

    cals = (age_factor + weight_factor + hr_factor - 75.4991) * time / 8.368

    print("Calories: {:.2f} calories".format(cals))

如果我们运行这个...

❯ python sample.py
Age? 49
Weight? 155
Heart Rate? 148
Time? 60
Calories: 736.21 calories
g2ieeal7

g2ieeal72#

age_factor = float(input())
weight_factor = float(input())
hr_factor = float(input())
time = float(input())

calories = ((age_factor * 0.2757) + (weight_factor * 0.03295) + (hr_factor * 1.0781)-75.4991) * time / 8.368

print('Calories: {:.2f} calories'.format(calories))

相关问题