Python編程算法【三十五】歌星大獎賽
【案例內(nèi)容】
在歌星大獎賽中,有10個評委為參賽的選手打分,分數(shù)為89~100分。選手最后得分為:去掉一個最高分和一個最低分后其余8個分數(shù)的平均值。請編寫一個程序?qū)崿F(xiàn)。
【解題思路】
本題可借用隨機函數(shù) random 隨機出10個分數(shù),取值范圍在89-100之間,包括89和100,再用列表存儲這10個分數(shù)。
方法一:可以先用 max()和 min() 找出其中的最大值與最小值,即最高分和最低分,接著用列表的 remove() 方法去掉這兩個分數(shù),然后再用 sum() 求出總和即總分,最后除以個數(shù)8就是平均分,其中個數(shù)也可以用 len()函數(shù)求得。
方法二:先用 sum() 求出總分,再用 max()和 min() 找出其中的最高分和最低分,然后用總分減去最高分和最低分,最后除以個數(shù)8就是平均分,其中個數(shù)也可以用 len()函數(shù)求得。
【Python代碼】


本題的兩種解題思路都可以求出平均分。相較之下,第二種的解法可以不需要用到remove函數(shù),因為有運算順序,所以要注意加上括號,同時第二種方法也容易直接寫成一行,看起來也很清楚、明白。小伙伴們可以嘗試看看。
標簽: