課程
/后端開發
/Python
/初識Python
L = [75, 92, 59, 68]
sum = 0.0
for sum in L:
? ? sum = sum + sum
print sum / 4
2019-03-09
源自:初識Python 5-4
正在回答
任何編程語言里都不能這么寫,有的語言你這么寫就等于0,有的就會像python一樣,for sum in L,這句話就是把L中的元素取出賦值給sum,每次值都會被重新覆蓋。有的編程語言中,sum對象屬于局部變量,外部的sum的值一直都不會改變,而局部變量外部無法訪問,結果就會變成0。任何語言都不能這么去寫代碼,即使你知道原理而且結果是正確的,也不行。因為別的開發可能會搞錯,時間長了你可能自己都會搞錯導致代碼異常
sum = sum + sum = 2 * sum, 每次循環跳的是兩倍,75*2, 而且 你這個sum 還不是累計求和,因為每次 sum 指向list里的一個數,求和就會變成那個數,所以你的答案會是 68*2/4
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-03-17
任何編程語言里都不能這么寫,有的語言你這么寫就等于0,有的就會像python一樣,for sum in L,這句話就是把L中的元素取出賦值給sum,每次值都會被重新覆蓋。有的編程語言中,sum對象屬于局部變量,外部的sum的值一直都不會改變,而局部變量外部無法訪問,結果就會變成0。任何語言都不能這么去寫代碼,即使你知道原理而且結果是正確的,也不行。因為別的開發可能會搞錯,時間長了你可能自己都會搞錯導致代碼異常
2019-03-09
sum = sum + sum = 2 * sum, 每次循環跳的是兩倍,75*2, 而且 你這個sum 還不是累計求和,因為每次 sum 指向list里的一個數,求和就會變成那個數,所以你的答案會是 68*2/4