變量定義問題
sum = 0;
def square_of_sum(L):
? ? for s in L:
? ? ? ? sum += s*s
? ? return sum
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
如上 為什么不能把sum這個屬性 定義在函數外?
sum = 0;
def square_of_sum(L):
? ? for s in L:
? ? ? ? sum += s*s
? ? return sum
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
如上 為什么不能把sum這個屬性 定義在函數外?
2018-08-17
舉報
2018-08-17
在python的函數中和全局變量同名的變量,如果你要修改變量的值就會變成局部變量,所以進行? sum += s*s 的賦值操作時,sum已經變成了局部變量,但是sum在函數中又沒有定義,就會出現沒定義這樣的錯誤。如果要引用全局變量,必須加上global關鍵字。就是在定義函數的一開頭寫上 global sum這句話才行。
2018-08-17
https://www.cnblogs.com/xixi18/p/8341828.html