python中全局變量和局部變量


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.5 sell_price is: 400.000

 

a、嘗試在函數外部訪問全局變量和局部變量,全局變量可以訪問,局部變量不可以訪問

>>> sale_price ## 全局變量 800.0
>>> discount_rate ## 全局變量 0.5
>>> sell_price ## 全局變量 400.0
>>> price ## 局部變量 Traceback (most recent call last): File "<pyshell#45>", line 1, in <module> price NameError: name 'price' is not defined >>> rate ## 局部變量 Traceback (most recent call last): File "<pyshell#46>", line 1, in <module> rate NameError: name 'rate' is not defined >>> price_discounted ## 局部變量 Traceback (most recent call last): File "<pyshell#47>", line 1, in <module> 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.5 output 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.5 new_sale_price: 5000 ## 在函數內部返回修改后的變量 sell_price is: 400.000 output the varable sale_price: 800.0 ## 在函數外部返回原始變量
## 在函數內部可以訪問全局變量,但是不可以修改全局變量

 

 局部變量只能在函數內調用,不能夠在函數外調用; 全局變量可以在函數內訪問,全局變量不可以在函數內修改。

全局變量的作用域在整個模塊,局部變量的作用域在函數內。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM