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

歡迎訪問 生活随笔!

生活随笔

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

python

Python(21)--变量进阶

發(fā)布時間:2023/12/13 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python(21)--变量进阶 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

變量的進階使用

  • 1變量引用
  • 2可變、不可變數(shù)據(jù)類型
  • 3局部變量和全局變量
  • 4.Tips

本系列博文來自學習《Python基礎視頻教程》筆記整理,視屏教程連接地址:http://yun.itheima.com/course/273.html
在博文:https://blog.csdn.net/sinat_40624829/article/details/89555165中簡單的介紹了變量的使用之后,本博文主要總結(jié)變量的進階使用。

1變量引用

變量和數(shù)據(jù)保存在內(nèi)存,兩者分開保存。

數(shù)據(jù)保存在內(nèi)存中的一個位置,變量中保存著數(shù)據(jù)在內(nèi)存中的地址。

變量中記錄著數(shù)據(jù)的地址,這就叫做引用。

使用id()查看變量中保存的數(shù)據(jù)在內(nèi)存中的地址。



實參通過引用調(diào)用,調(diào)用函數(shù)時,本質(zhì)上保存的是:實參保存數(shù)據(jù)的引用(地址),而不是實參保存的數(shù)據(jù)。

函數(shù)的返回值傳遞引用(地址)

2可變、不可變數(shù)據(jù)類型

不可變數(shù)據(jù)類型:數(shù)字,字符串,元組
可變數(shù)據(jù)類型:列表、字典

a=1

一旦在某一個內(nèi)存單元中指定了一個數(shù)字,這個單元中的數(shù)字就不能變了,但是a可以指向不同的地址,就好像a代表的數(shù)字在變一樣。

a=“hello”

不可變

a=[1,2,3]

可變,可以通過方法A.append/A.pop來修改列表內(nèi)容。

a=[3,2,1]

不是在修改原來的列表,而是新建了一個列表

對列表和字典操作:賦值語句會修改變量的引用

)
)
字典的Key不能是可變類型:s數(shù)字、元素、字符串可以作為鍵,列表字典不行,否則會報錯。
)
)

報錯信息:unhashable
哈希:看做一個函數(shù),傳入一個不可變數(shù)據(jù)類型,并且返回一個結(jié)果,提取數(shù)據(jù)的特征碼,如果傳遞的內(nèi)容是相同的,就能夠返回相同的結(jié)果,如果傳遞的內(nèi)容是不同的能夠返回不同的結(jié)果。Hash函數(shù)只能接受一個不可變數(shù)據(jù)類型作為參數(shù),不能接受可變類型參數(shù)。

在python設置字典鍵值時,為了后續(xù)增刪查改的方便,解釋器會對key進行hash操作,以決定如何在內(nèi)存中保存字典數(shù)據(jù)。

3局部變量和全局變量

局部變量:函數(shù)內(nèi)部定義的變量,只能在定義它的函數(shù)中使用
全局變量:函數(shù)定義的變量,能夠在所有函數(shù)中都使用

溫馨提示;在其他編程語言中,不推薦使用全局變量,–可變范圍大,導致函數(shù)不好維護,
在Python中有特定的設置,來避免一些問題。函數(shù)中要使用變量的時候,就近查找原則,找到就用。

3.1局部變量:臨時保存一個函數(shù)內(nèi)部使用的數(shù)據(jù)。
1.生命周期:創(chuàng)建到消亡,生命周期內(nèi)才能使用變量。
2.使用細節(jié):不同的函數(shù)內(nèi)部,定義了相同名字變量,相互之間使用互不干擾。

3.2全局變量:
1.使用細節(jié): 在函數(shù)內(nèi)部,可以通過變量的引用獲取對應的數(shù)據(jù),但是不允許直接修改全局變量的引用。也就是只能用,不能對其使用賦值操作。

num=10 def demo_one():# 希望修改全局變量的值# 在python函數(shù)中不允許修改全局變量的值# 如果使用賦值語句,會在函數(shù)內(nèi)部定義一個局部變量num = 99print("demo_one =>%d" %num) def demo_two():print("demo_two=>%d" % num) demo_one() demo_two()

輸出:

demo_one =>99
demo_two=>10

2.在函數(shù)內(nèi)部來修改全局變量的值:global聲明全局變量

num=10 def demo_one():# 希望修改全局變量的值# 在python函數(shù)中不允許修改全局變量的值# 如果使用賦值語句,會在函數(shù)內(nèi)部定義一個局部變量# 聲明一下,就能夠說后面的變量是全局變量,就不會創(chuàng)建一個局部變量global numnum = 99print("demo_one =>%d" %num) def demo_two():print("demo_two=>%d" % num) demo_one() demo_two()

輸出:

demo_one =>99
demo_two=>99

3.全局變量定義的位置:在開發(fā)時,把所有的全局變量定義所有函數(shù)的上方,就可以保證所有的函數(shù)都能正常訪訪問所有的全局變量。

4.全局變量命名:不同公司對于全局變量的標記有不同的規(guī)則;在變量名前面增加gl_或者g_(到新的公司工作,可以問一下,領(lǐng)導全局變量的命名規(guī)則,可以顯得你有開發(fā)經(jīng)驗)

4.Tips

1.Pycharm調(diào)試的小技巧:左下角的調(diào)試模塊跳轉(zhuǎn)。



2.Python代碼結(jié)構(gòu):

shebang
import
全局變量
函數(shù)定義
執(zhí)行代碼

3.程序執(zhí)行的順序要清楚,老師每次說的時候大家都覺得很簡單,但是在關(guān)鍵時刻才知道平時積累的重要性.

總結(jié)

以上是生活随笔為你收集整理的Python(21)--变量进阶的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。