我对编程非常、非常、非常陌生。到目前为止,我真的很喜欢这门课。然而,最近的编程挑战有点令人困惑和畏惧。我面临的最新挑战让我挠头,因为我在书中或网上都找不到任何帮助。简言之,我需要创建一个程序,将五名评委的得分在0-10分之间,排除给出的最高和最低得分,然后计算其余三名得分的平均值。虽然我知道如何验证单个值的用户输入并计算平均值,但我不知道如何验证所有5个输入的用户输入,而不做任何过于繁琐的事情,并排除用户输入的最高分数和最低分数。我对我需要做什么有一些想法。将用户输入作为浮点值,然后将其转移到一个获得最高和最低分数的函数,然后将它发送到另一个计算平均值的函数。如果有人能帮我,我将不胜感激。以下是我到目前为止所做的工作。提前谢谢。
def getJudgeData():
badEntry = True
while (badEntry) :
judge1 = float (input("Please enter the first judge's score : "))
if (judge1 < 0 or judge1 > 10) :
print ("The score must be greater than 0 and less than or equal to 10!")
else:
badEntry = False
while (badEntry) :
judge2 = float (input("Please enter the second judge's score : "))
if (judge2 < 0 or judge2 > 10) :
print ("The score must be greater than 0 and less than or equal to 10!")
else:
badEntry = False
下面的代码会要求输入5次分数,这就是为什么循环在5的范围内。如果用户的输入不是整数,它将抛出一个值错误。如果您想要float,您可以将其更改为float。如果用户输入超过10,则会提示用户输入正确范围内的数字。然后calculate_average函数返回四舍五入到小数点后两位的平均值,如果需要,可以更改小数点后或多或少的位置。
我不知道你说的减去最大值和最小值是什么意思,所以我把它从分数中去掉了。但如果我误解了,就把它们留在那里,然后像往常一样计算平均值。
scores = []
def getJudgeData():
for i in range(5):
try:
judge_score = int(input("Please enter the first judge's score : "))
if (judge_score in range(11)):
scores.append(judge_score)
else:
print('Enter a score from 1 to 10')
except ValueError:
print("Enter a valid number")
def calculate_average():
max_value = max(scores)
min_value = min(scores)
scores.remove(max_value)
scores.remove(min_value)
average = sum(scores)/len(scores)
return round(average, 2)
getJudgeData()
print(calculate_average())