continue語法下計算平均值出現了很奇怪的問題 求解..
#兩段代碼?前半段是計算整個集合的平均值,后半段只計算大于60的平均值
L?=?[75,?98,?59,?81,?66,?43,?69,?85]
a?=?0.0
ag?=?len(L)
for?x?in?L:
?a?=?a?+?x
print?a?/?ag
exit?=?input('press?enter?to?exit!')
#-------------------我是分割線-----------------
L?=?[75,?98,?59,?81,?66,?43,?69,?85]
a?=?0.0
ag?=?len(L)
for?x?in?L:
?if?x?<?60:
??continue
?a?=?a?+?x
print?a?/?ag
exit?=?input('press?enter?to?exit!')第一段代碼執行的結果是72.0 第二段執行結果59.25 為啥第二段比第一段還小呢..?
2017-08-20
第二段總和小于第一段,但ag的值是相等的,所以平均值小
2017-08-20
ag=len(L),在第二步計算的時候你把低于60的成績去除了但是沒有改變數據個數ag,建議在每次忽略一個低于60的成績后面加一行代碼ag=ag-1
2017-08-20
傻孩子 ?哈哈哈 ? ag=len()還是8個人 ?你把6個高于60的成績求和后再除以 8個人 ?肯定小啊