【问题标题】:How to correct calculation error on Python如何纠正 Python 上的计算错误
【发布时间】:2021-02-11 23:54:07
【问题描述】:

以下等式估算运动时燃烧的卡路里(来源):

男士:Calories = [(Age x 0.2017) — (Weight x 0.09036) + (Heart Rate x 0.6309) — 55.0969] x Time / 4.184

女性:Calories = [(Age x 0.074) — (Weight x 0.05741) + (Heart Rate x 0.4472) — 20.4022] x Time / 4.184

使用输入年龄(岁)、体重(磅)、心率(每分钟跳动次数)和时间(分钟)编写程序。输出男性和女性燃烧的卡路里。

例如:如果输入是:

49
155
148
60

那么输出是:

Men: 489.7772466539196 calories
Women: 580.939531548757 calories

我的代码 -

age_years = float(input('Enter your age in years:\n'))
weight_lbs = float(input('Enter your weight in pounds:\n'))
heart_rate = float(input('Enter your heart rate in beats per minute:\n'))
time_min = float(input('Enter total time in minutes:\n'))
men_calories = [(age_years * 0.2017) - (weight_lbs * 0.09036) + (heart_rate * 0.6309) - 55.0969] * (time_min / 4.184)
women_calories = [(age_years * 0.074) - (weight_lbs * 0.05741) + (heart_rate * 0.4472) - 20.4022] * (time_min / 4.184)
print("Men:" , men_calories)
Error: Traceback (most recent call last):
  File "main.py", line 8, in <module>
    men_calories = [(age_years * 0.2017) - (weight_lbs * 0.09036) + (heart_rate * 0.6309) - 55.0969] * (time_min / 4.184)
TypeError: can't multiply sequence by non-int of type 'float'

我在这里做错了什么?

【问题讨论】:

    标签: python-3.x calculation


    【解决方案1】:

    在 Python 中,[] 用于定义列表(在其他语言中有时称为数组),而不是作为 () 等表达式的分隔符,因此,只需使用括号代替:

    ...
    men_calories = ((age_years * 0.2017) - (weight_lbs * 0.09036) + (heart_rate * 0.6309) - 55.0969) * (time_min / 4.184)
    women_calories = ((age_years * 0.074) - (weight_lbs * 0.05741) + (heart_rate * 0.4472) - 20.4022) * (time_min / 4.184)
    ...
    

    【讨论】:

    • 谢谢你成功了。但是 zybook 惹我生气,说错了:(输入 49 155 148 60 你的输出男性:489.77724665391963 卡路里女性:580.939531548757 卡路里预期输出男性:489.7772466539196 卡路里女性:580.939531548757 卡路里
    【解决方案2】:

    如果您使用以下表达式,它会将您的答案四舍五入到最接近的千分之一。 print('女性:{:.2f}calories_women') 打印('男人:{:.2f}卡路里_男人') 希望能帮助下一个学生,因为斗争绝对是真实的???????

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2010-10-18
    • 1970-01-01
    • 2017-05-15
    • 2014-06-03
    • 2016-07-26
    相关资源
    最近更新 更多