日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python函数对变量的作用_python函数对变量的作用及遵循的原则

發布時間:2023/12/9 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数对变量的作用_python函数对变量的作用及遵循的原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.全局變量和局部變量

全局變量:指在函數之外定義的變量,一般沒有縮進,在程序執行的全過程有效

局部變量:指在函數內部使用的變量,僅在函數內部有效,當函數退出時變量將不存在

例如:

1 n=1 #n是全局變量

2 deffunc(a,b):3 c=a*b #c是局部變量,a和b作為函數參數也是局部變量

4 returnc5 s=func("knock~",2)6 print(c)

Traceback (most recent call last):

File "F:\pyrhon\函數對變量的作用.py", line 6, in

print(c)

NameError: name 'c' is not defined

這個例子說明,當函數執行完退出后,其內部變量將被釋放。

如果函數內部使用了全局變量呢?例如:

n=1 #n是全局變量

deffunc(a,b):

n=b #這個n是在函數內存中新生成的局部變量,不是全局變量

return a*b

s=func("knock~",2)print(s,n) #測試一下n值是否發生改變

knock~knock~ 1

函數func()內部使用了變量n,并且將變量參數b賦值給變量n,為何n值沒有改變?

因為函數func()有自己的內存空間,它將n=b語句理解為生成一個局部變量n,并將參數b賦值給它,此時func()函數沒有將n當作全局變量。所以,函數退出后,局部變量n被釋放,全局變量n的值沒有改變。

如果希望讓func()函數將n當作全局變量,需要在變量n使用前顯式說明該變量未全局變量,修改后:

1 n=1 #n是全局變量

2 deffunc(a,b):3 globaln4 n=b #將局部變量b賦值給全局變量n

5 return a*b6 s=func("knock~",2)7 print(s,n) #測試一下n值是否發生改變

knock~knock~ 2

2.python函數對變量的作用遵守原則:

(1)簡單數據類型變量無論是否與全局變量重名,僅在函數內部創建和使用,函數退出后變量被釋放,如有全局同名變量,其值不變。

(2)簡單數據類型變量在用global保留字聲明后,作為全局變量使用,函數退出后該變量保留且值被函數改變。

(3)對于組合數據類型的全局變量,如果在函數內部沒有被真實創建的同名變量,則函數內部可以直接使用并修改全局變量的值。

(4)如果函數內部真實創建了組合數據類型變量,無論是否有同名全局變量,函數僅對局部變量進行操作,函數退出后局部變量被釋放,全局變量值不變。

思考:如果全局變量不是整數n,而是列表類型ls,會怎么樣呢?

本篇主要講述函數對程序中變量的作用問題,涉及組合數據類型,后期會持續更新講解。

總結

以上是生活随笔為你收集整理的python函数对变量的作用_python函数对变量的作用及遵循的原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。