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:800please 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:800please 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:800please 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...