python中全域性變數和區域性變數

2022-06-17 16:12:10 字數 3326 閱讀 4470

1、

python中定義在函式內部的變數稱為區域性變數,區域性變數只能在區域性函式內部生效,它不能在函式外部被引用。

def discount(price,rate):

price_discounted = price *rate

return

price_discounted

sale_price = float(input("

please input the sale_price:"))

discount_rate = float(input("

please input the discount_rate:"))

sell_price =discount(sale_price,discount_rate)

print(

"sell_price is: %.3f

" % sell_price)

## 在以上指令碼中, 定義函式discount(),兩個形參price和rate。 區域性變數為 price、rate 和 price_discounted. 全域性變數為 sale_price、discount_rate和 sell_price。

執行效果如下:

please input the sale_price:800

please input the discount_rate:

0.5sell_price

is: 400.000

a、嘗試在函式外部訪問全域性變數和區域性變數,全域性變數可以訪問,區域性變數不可以訪問

>>>sale_price            ## 全域性變數

800.0

>>>discount_rate ## 全域性變數

0.5>>>sell_price ## 全域性變數

400.0

>>>price ## 區域性變數

traceback (most recent call last):

file

"", line 1, in

price

nameerror: name

'price'is

not defined

>>>rate ## 區域性變數

traceback (most recent call last):

file

"", line 1, in

rate

nameerror: name

'rate'is

not defined

>>>price_discounted ## 區域性變數

traceback (most recent call last):

file

"", line 1, in

price_discounted

nameerror: name

'price_discounted

'is not defined

b、嘗試在函式內部訪問全域性變數

def discount(price,rate):

price_discounted = price *rate

print(

"output globle varable sale_price:

",sale_price)

return

price_discounted

sale_price = float(input("

please input the sale_price:"))

discount_rate = float(input("

please input the discount_rate:"))

sell_price =discount(sale_price,discount_rate)

print(

"sell_price is: %.3f

" % sell_price)

please input the sale_price:800

please input the discount_rate:

0.5output globle varable sale_price:

800.0 ##在函式內部可以訪問全域性變數

sell_price

is: 400.000

c、嘗試在函式內部修改全域性變數

def discount(price,rate):

price_discounted = price *rate

sale_price

= 5000 ## 在函式內部修改全域性變數

print(

"new_sale_price:

",sale_price) ## 在函式內部輸出修改後的變數

return

price_discounted

sale_price = float(input("

please input the sale_price:"))

discount_rate = float(input("

please input the discount_rate:"))

sell_price =discount(sale_price,discount_rate)

print(

"sell_price is: %.3f

" %sell_price)

print(

"output the varable sale_price:

",sale_price) ## 在函式外輸出修改後的變數,驗證是否改變

please input the sale_price:800

please input the discount_rate:

0.5new_sale_price:

5000 ## 在函式內部返回修改後的變數

sell_price

is: 400.000

output the varable sale_price:

800.0 ## 在函式外部返回原始變數

## 在函式內部可以訪問全域性變數,但是不可以修改全域性變數

區域性變數只能在函式內呼叫,不能夠在函式外呼叫; 全域性變數可以在函式內訪問,全域性變數不可以在函式內修改。

全域性變數的作用域在整個模組,區域性變數的作用域在函式內。

python全域性變數和區域性變數

總體來說跟c 差不多 有一點不一樣的是,當乙個全域性變數在某一函式中出現了賦值之後,函式中使用的是相同名字的區域性變數,而全域性變數不受影響 如a 100 def f a 100 print a f 這裡,函式內部的變數名如果第一次出現,且出現在 前面,即被視為定義乙個區域性變數。而函式中的a是乙個...

python全域性變數和區域性變數

當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 區域性 的。這稱為變數的 作用域 所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。使用區域性變數 usr bin python filename func local.py de...

Python全域性變數和區域性變數

定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。如下例項 total 0 這是乙個全域性變數 可寫函式說明 def sum arg1,a...