寫一個功能,運行報錯,name 'number' is used prior to global declaration ,查資料梳理一下
因為這個函數需要調用多次,第一次調用的時候,走if語句,后面的走else語句,所以需要一個判斷對象,我這里設置了一個全局變量,以它為判斷標准,首次調用函數后,全局變量➕ 1 ,參照代碼如下。實際運行后
1 number = 10 2 print('number 外',number) 3 def add(): 4 if number == 10: 5 print('number=',number)
else:
print('-------') 6 global number 7 number = 12 8 add()
運行結果是:
global number
^
SyntaxError: name 'number' is used prior to global declaration
網上查了一下資料,錯誤原因如下:
在更改全局變量前調用了全局變量,這樣寫代碼,在不運行前,我使用pycharm不會有任何提示,讓你覺得寫得很完美,一運行很傷心。一開始我這里當成c的全局變量使用習慣了。
解決方法:
函數添加了一個參數,以這個參數為判斷標准,然后更改全局變量