7个评委给每个选手打分,评委分数中去掉最高分与最低分,计算所得平均分是每个选手的最后得分,保留2位小数。
根据上述计算规则,编写自定义函数完成程序功能,完善下方代码。
""" 根据评委分数,计算去掉最高分与最低分后的平均分,保留2位小数。 函数名:def getScore(fs): 参数fs:表示评委的分数,为列表 返回值:返回选手的得分,保留2位小数 """
def getScore(fs):
maxfs = 0
minfx = 999999
n =
for f in fs:
if f > maxfs:
elif f < minfx:
minfx = f
yxf = sum(fs)-maxfs-minfx
avgfs =
return avgfs
fs = [9.56,9.68,9.78,9.67,9.81,9.21,9.75]
defen =
print(defen)
根据你给的数据得出
修改后的代码:
def getScore(fs):
maxfs = 0
minfs = 999999
n = len(fs)
for f in fs:
if f > maxfs:
maxfs = f
elif f < minfs:
minfs = f
yxf = sum(fs) - maxfs - minfs
avgfs = round(yxf / (n - 2), 2)
return avgfs
fs = [9.56, 9.68, 9.78, 9.67, 9.81, 9.21, 9.75]
defen = getScore(fs)
print(defen)
1.首先定义了函数getScore(fs),其中fs表示评委的分数,它是一个列表。初始化maxfs为0和minfs为一个很大的数(999999)。然后遍历评委的分数列表fs,找到最高分和最低分并更新maxfs和minfs的值。
2.计算去掉最高分和最低分后的总分yxf,通过使用sum(fs)减去maxfs和minfs的值。然后,计算平均分avgfs,它是yxf除以剩余评委的数量n-2,并且使用round函数将结果保留两位小数。
3.调用getScore(fs)函数并将分数列表fs作为参数传递给它,将返回的得分赋值给变量defen,然后打印defen。这将输出每个选手的最后得分,保留两位小数。在给定的评委分数列表fs中,最后得分为9.69。
def getScore(fs):
maxfs = 0
minfx = 999999
for f in fs:
if f > maxfs:
maxfs = f
elif f < minfx:
minfx = f
avgfs = round((sum(fs) - maxfs - minfx) / (len(fs) - 2), 2)
return avgfs
fs = [9.56, 9.68, 9.78, 9.67, 9.81, 9.21, 9.75]
defen = getScore(fs)
print(defen)