m0_73786595 2023-07-11 09:20 采纳率: 25%
浏览 60
已结题

关于#python#的问题:7个评委给每个选手打分,评委分数中去掉最高分与最低分,计算所得平均分是每个选手的最后得分,保留2位小数

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)

  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-07-11 09:23
    关注

    根据你给的数据得出

    img

    修改后的代码:

    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。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月11日
  • 已采纳回答 7月11日
  • 创建了问题 7月11日