我对编程很陌生,只是不了解事情的诀窍。我想我想得太多了。请给我建议。
以下公式根据科学期刊的一篇文章(来源)估算了一个人在运动时消耗的平均卡路里:
卡路里=(年龄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))发布于 2022-09-05 15:53:38
您的代码是接近的,但问题是您还需要将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 calorieshttps://stackoverflow.com/questions/73611573
复制相似问题