python基礎學習十一 全域性變數與區域性變數

2021-10-10 08:25:59 字數 1475 閱讀 1718

變數作用域指的是變數生效的範圍,主要分為兩類:區域性變數和全域性變數。

所謂區域性變數是定義在函式體內部的變數,即只在函式體內部生效。

def

testa()

: a =

100print

(a)testa(

)# 100

print

(a)# 報錯:name 'a' is not defined

變數a是定義在 testa 函式內部的變數,在函式外部訪問則立即報錯。

所謂全域性變數,指的是在函式體內、外都能生效的變數。

思考:如果有⼀個資料,在函式a和函式b中都要使用,該怎麼辦?

答:將這個資料儲存在⼀個全域性變數裡面。

# 定義全域性變數a a = 100

deftesta()

:print

(a)# 訪問全域性變數a,並列印變數a儲存的資料

deftestb()

:print

(a)# 訪問全域性變數a,並列印變數a儲存的資料

testa(

)# 100

testb(

)# 100

思考: testb 函式需求修改變數a的值為200,如何修改程式?

a =

100def

testa()

:print

(a)def

testb()

: a =

200print

(a)

testa(

)# 100

testb(

)# 200

print

(f'全域性變數a = '

)# 全域性變數a = 100

思考:在 testb 函式內部的 a = 200 中的變數a是在修改全域性變數 a 嗎?

答:不是。觀察上述**發現,最後一行**處得到a的資料是100,仍然是定義全域性變數a時候的值,而沒有返回testb 函式內部的200。

綜上: testb 函式內部的 a = 200 是定義了乙個區域性變數。

思考:如何在函式體內部修改全域性變數?

a =

100def

testa()

:print

(a)def

testb()

:# global 關鍵字宣告a是全域性變數

global a

a =200print

(a)testa(

)# 100

testb(

)# 200

print

(f'全域性變數a = '

)# 全域性變數a = 200

python基礎(十一)全域性變數與局域變數

區域性變數與全域性變數 age 18 全域性變數 def change name name global age global 把區域性變數改成全域性變數 age 25 print before change name,age 列印結果 before change clyde 25 name cly...

python基礎學習(十一)公共方法

python 包含了以下內建函式 注意 成員運算子用於 測試 序列中是否包含指定的 成員 注意 在對字典操作時,判斷的是字典的鍵 在ipyton3中進行練習 在python中完整的for 迴圈的語法如下 for 變數 in 集合 迴圈體 else 沒有通過 break 退出迴圈,迴圈結束後,會執行的...

python基礎教程學習筆記十一

檔案和素材 1 開啟檔案 開啟檔案的語法 open name mode buffering name 檔名 mode 模式 buffering 緩衝引數 示例 如下 f open r c log.txt 檔案不存在 f open r c t.txt traceback most recent cal...