Python计算与教师的预期输出

时间:2015-09-17 16:24:27

标签: python

我有一份学校作业(我们主要使用Python),这要求我使用以下变量制作一个程序:c1, c2, c3, average, reward。以c开头的变量是分数(0/10,类型为float)。变量average是三个c - 得分的平均得分。变量reward包含平均分数中每个点25美分的奖励。例如,如果我的平均得分为7.4,我将获得reward = average * 25的奖励。

c变量具有以下值:

c1 = 5.6
c2 = 7.3
c3 = 8.4

作业的输出应为:

These are my scores: c1 = 5.6 and c2 = 7.3 and c3 = 8.4
My average score: 7.100000000000005
My reward: 532 Cents

相反,我的代码输出:

These are my scores: c1 = 5.6 and c2 = 7.3 and c3 = 8.4
My average score: 7.099999999999999
My reward: 177 Cents

这是我现在的代码:

#The required variables
#My scores
c1 = 5.6
c2 = 7.3
c3 = 8.4

#Variables calculating the needed info using the c-variables above
#My average score
average = (c1 + c2 + c3) / 3
#My reward
reward = int(average * 25)

#Output the info as required by the assignment
print("These are my scores: c1 = " + str(c1) + " and c2 = " + str(c2) + " and c3 = " + str(c3))
print("My average score: " + str(average))
print("My reward: " + str(reward) + " Cents")

我一直试图解决这个问题,但我看不出这个问题。显示的信息在数学上是正确的。可能是我的老师弄错了,但也可能是我的错。你能看到我做错了导致程序输出(可能)不正确的信息吗?

2 个答案:

答案 0 :(得分:1)

平均7.1倍25将永远不会返回532的奖励,而是返回177.5,这是你在输出中获得的。这不是代码中的错误。你应该检查奖励积分的价值。

答案 1 :(得分:0)

使用round函数将浮点数舍入为只有一位十进制数。

print("My average score: " + str(round(average,1)))

输出

My average score: 7.1