Python(21)--变量进阶
變量的進階使用
- 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ù),但是不允許直接修改全局變量的引用。也就是只能用,不能對其使用賦值操作。
輸出:
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Java8实战》笔记(09):默认方法
- 下一篇: 《Python Cookbook 3rd