Python成長史(十六)

2021-10-23 14:45:31 字數 2608 閱讀 1296

一、區域性變數和全域性變數

區域性變數是在函式內部定義的變數,只能在函式內部使用

全域性變數是在函式外部定義的變數(沒有定義在某乙個函式內),所有函式內部都可以使用這個變數

1、區域性變數

1)區域性變數是在函式內部定義的變數,只能在函式內部使用

2)函式執行結束後,函式內部的區域性變數會被系統**

3)不同的函式,可以定義相同的名字的區域性變數,但是各彼此指尖不會產生影響

1.1、區域性變數的作用

在函式內部使用,臨時儲存函式內部需要使用的資料

# coding=utf-8

defdemo1()

:# 區域性變數 num

num =

10print

"在demo1函式內部的變數是%d"

%num

1.2、區域性變數的生命週期1)所謂生命週期就是變數從被建立到被系統**的過程

2)區域性變數函式執行時才會被建立

3)函式執行結束後區域性變數被系統**

4)區域性變數在生命週期內,可以用來儲存函式內部臨時使用到的資料

2、全域性變數

2.1、全域性變數是在函式外部定義的變數,所有函式內部都可以使用這個變數

注意:函式執行時,需要處理變數時會:

1.首先查詢函式內部是否存在指定名稱的區域性變數如果有,直接使用

2.如果沒有,查詢函式外部是否存在指定名稱全域性變數,如果有,直接使用

3.如果還沒有,程式報錯

2.2 、函式不能直接修改全域性變數的引用

全域性變數是在函式外部定義的變數(沒有定義在某乙個函式內),所有函式內部都可以使用這個變數

♥ 但是,不允許直接修改全域性變數的引用——使用賦值語句修改全域性變數的值

2.3、在函式內部修改全域性變數的值

如果在函式中需要修改全域性變數,需要使用global 進行宣告

num =

10def

demo01()

:print

("demo01"

+"-"*50

)# global 關鍵字,告訴python直譯器num是乙個全域性變數

global num

# 只是定義了乙個區域性變數,不會修改到全域性變數,值是變數名相同而已

num =

100print

(num)

defdemo02()

:print

("demo02"

+"-"*50

)print

(num)

demo01(

)demo02(

)print

("over"

)

注意:在開發時,應該把模組中的所有全域性變數定義在所有函式上方,就可以保證所有的函式都能夠正常訪問到每乙個全域性變數

由於全域性變數是在呼叫函式之後,才定義的,在執行函式時,變數還沒有定義,所以程式會報錯!

**結構示意圖如下:

2.4、全域性變數命名的建議

♥ 為了避免區域性變數和全域性變數出現混淆,在定義全域性變數時,有些公司會有一些開發要求。

例如:全域性變數名前應該增加g_或者gl_的字首

Python成長史(一)

1 可以用其他變數的計算結果定義變數 2 變數定義之後,後續就可以直接使用了 eg 需求 1 蘋果的 是8.5元 斤 2 計算付款金額 定義蘋果 變數 print 8.5 定義購買數量 weight 7.5 計算金額 money print weight print money money monr...

Python成長史(二)

判斷 if 語句 if 語句判斷語句的基本語法 if 要判斷的條件 條件成立時,要做的事情 注意 的縮排為乙個tab鍵,或者4個空格 建議使用空格 在python開發中,tab和空格不要混用 例題 需求 1 定義乙個整數變數記錄年齡 2 判斷是否滿18歲 3 如果滿18歲,允許進網咖嗨皮 定義乙個整...

Python成長史(四)

一 while巢狀 1 while巢狀就是 while裡面還有while 1.1 用巢狀列印小星星 需求 在控制台連續輸出五行 每一行星號依次遞增 在控制台連續輸出5行 每一行 的數量一次遞增 1 定義乙個計數變數,從數字1開始,迴圈會比較方便 row 1 2 開始迴圈 while row 5 pr...