Python编程算法【三十五】歌星大奖赛
【案例内容】
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为89~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
【解题思路】
本题可借用随机函数 random 随机出10个分数,取值范围在89-100之间,包括89和100,再用列表存储这10个分数。
方法一:可以先用 max()和 min() 找出其中的最大值与最小值,即最高分和最低分,接着用列表的 remove() 方法去掉这两个分数,然后再用 sum() 求出总和即总分,最后除以个数8就是平均分,其中个数也可以用 len()函数求得。
方法二:先用 sum() 求出总分,再用 max()和 min() 找出其中的最高分和最低分,然后用总分减去最高分和最低分,最后除以个数8就是平均分,其中个数也可以用 len()函数求得。
【Python代码】


本题的两种解题思路都可以求出平均分。相较之下,第二种的解法可以不需要用到remove函数,因为有运算顺序,所以要注意加上括号,同时第二种方法也容易直接写成一行,看起来也很清楚、明白。小伙伴们可以尝试看看。