一、任務描述
本實驗任務主要對Python的局部、全局變量進行一些基本操作,通過完成本實驗任務,要求學生熟練掌握Python的局部、全局變量。並對Python局部、全局變量的基本操作進行整理並填寫工作任務報告。
二、任務目標
1、掌握Python的局部變量
2、掌握Python的全局變量
3、掌握Python的Global變量
三、任務環境
Ubuntu16.04、Python2.7
四、任務分析
全局變量與局部變量兩者的本質區別就是在於作用域。用通俗的話來理解的話,全局變量是在整個py文件中聲明,全局范圍內都可以訪問。局部變量是在某個函數中聲明的,只能在該函數中調用它,如果試圖在超出范圍的地方調用,程序就爆掉了。如果在函數內部定義與某個全局變量一樣名稱的局部變量,就可能會導致意外的效果。因此不建議這樣使用,這樣會使得程序很不健全。
♥ 溫馨提示 |
在函數中,如果想給全局變量賦值,則需要用關鍵字global聲明。 |
五、任務步驟
步驟1、環境准備
右擊Ubuntu操作系統桌面,從彈出菜單中選擇【Open in Terminal】命令打開終端。
通過【cd /home】切換到home目錄下。【ls】查看該目錄下的多有內容。

【mkdir variable】在home目錄下創建variable文件夾。

步驟2、局部變量
函數內部的變量名如果第一次出現,且出現在=前面,即被視為定義一個局部變量,不管全局域中有沒有用到該變量名,函數中使用的將是局部變量。
【cd variable】切換到variable目錄下,【vim var1.py】回車后創建並編輯名為var1的Python文件。

回車后進入編輯框內,按鍵盤【i】進入編輯狀態,輸入如下程序。
定義全局變量num,函數func內部定義局部變量num,通過main方法調用函數func()。

編輯完畢后,按【esc】退出編輯狀態,【:wq】保存並退出編輯框,【python var1.py】執行var1的Python文件。
根據輸出的結果判斷函數中定義的num局部變量會將全局變量覆蓋。

再次進入var1.py文件編輯狀態,修改程序。

再次運行var1.py程序出現‘num’沒有被定義的錯誤。
錯誤提示局部變量num在賦值前被應用,也就是該變量沒有定義就使用它,由此再次證明了這里定義了一個局部變量,而不是使用的全局的num。

步驟3、全局變量
函數內部的變量名如果第一次出現,且出現在=后面,且該變量在全局域中已定義,則這里將引用全局變量,如果該變量在全局域中沒有定義,當然會出現“變量未定義”的錯誤。
【vim var2.py】回車后創建並編輯名為var2的Python文件。

回車后進入編輯框內,按鍵盤【i】進入編輯狀態,輸入如下程序。
定義全局變量num,函數func內部定義x = num + 100,通過main方法調用函數func()。

編輯完畢后,按【esc】退出編輯狀態,【:wq】保存並退出編輯框,【python var2.py】執行var2的Python文件。
根據輸出的結果判斷函數中使用的num是全局變量num。
只要是使用變量,而該變量在全局域中有定義,而在局部沒有定義,則會使用全局變量。

再次進入var2.py文件編輯狀態,修改程序。
在函數內部定義局部變量num = 50。

再次運行var2.py文件,根據結果得知使用的變量在全局域中有定義,在局部域中也有定義,則默認會使用局部變量。

步驟4、global變量
在函數中,如果想給全局變量賦值,則需要用關鍵字global聲明。
【vim var3.py】回車后創建並編輯名為var3的Python文件。

回車后進入編輯框內,按鍵盤【i】進入編輯狀態,輸入如下程序。
定義全局變量num,函數func內部為num變量添加global,修改全部變量num,通過main方法依次調用函數func(),全部變量num。

編輯完畢后,按【esc】退出編輯狀態,【:wq】保存並退出編輯框,【python var3.py】執行var3的Python文件。
根據結果判斷函數中給num賦值為200是修改的全局變量,而且這里沒有定義新的局部變量。

再次進入var3.py文件編輯狀態,修改程序。
添加num += 60,修改num的值。

再次運行var2.py文件,根據結果判斷后續操作num也是操作的全局變量。
