可更改(mutable)與不可更改(immutable)物件:
1.1 不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成乙個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
1.2 可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
python函式的引數傳遞
2.1 不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。
2.2 可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
引數 3.1 關鍵字引數:使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。
def
test_args
(name
,age):
print('name:'
,name)
print('age:'
,age)
return
test_args
(age=50
,name
="zhangsan "
)
3.2 不定長引數:加了星號(*)的變數名會存放所有未命名的變數引數。如果在函式呼叫時沒有指定引數,它就是乙個空元組。我們也可以不向函式傳遞未命名的變數。
def
test_args
(arg1
,*args):
"列印任何傳入的引數"
print(arg1)
for arg in args:
print(arg)
return
test_args(10
,20,30
,40)
匿名函式
4.1 python 使用 lambda 來建立匿名函式。
sum =
lambda
arg1
,arg2
: arg1 + arg2;
# 呼叫sum函式
print ("相加後的值為 : "
, sum(10
,20))
print ("相加後的值為 : "
, sum(20
,20))
變數作用域
5.1 變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱python的作用域一共有4種,分別是: l (local) 區域性作用域 e (enclosing) 閉包函式外的函式中 g (global) 全域性作用域 b (built-in) 內建作用域
5.2 python 中只有模組(module),類(class)以及函式(def、lambda)才會引入新的作用域,其它的**塊(如 if/elif/else/、try/except、for/while等)是不會引入新的作用域的,也就是說這些語句內定義的變數,外部也可以訪問
global 和 nonlocal關鍵字
當內部作用域想修改外部作用域的變數時,就要用到global和nonlocal關鍵字了
6.1 修改全域性變數用global
num =
1
deffun1()
: global num # 需要使用 global 關鍵字宣告
print(num)
num =
123
print(num)
fun1()
6.2 修改巢狀作用域(enclosing 作用域,外層非全域性作用域)中的變數則需要 nonlocal 關鍵字
defouter()
: num =
10
definner()
: nonlocal num # nonlocal關鍵字宣告
num =
100
print(num)
inner()
print(num)
outer()
posted @
2018-04-17 13:36
酸奶加綠茶 閱讀(
...)
編輯收藏
python基礎筆記 python基礎筆記
一 變數 定義變數的規則 1 變數名只能是字母 數字 下劃線的組合 2 變數名不能以數字開頭 3 python中使用的關鍵字不能作為變數 注意 行業預設規則 1 變數命令見名知意 2 駝峰 3 字母全大寫代表是常量 例子 name mr liao name1 name print name,name...
免費python基礎筆記 python基礎學習筆記
1.python中的編碼格式 a.ascii碼 ascii碼共有127個字元,包括數字,大小寫字母,和一些符號,比如常見的字元的ascii碼表示有 a 65,z 132,ascii碼是用乙個位元組表示的,其主要的缺點就是因為在記憶體中只佔乙個位元組,所以無法被用來表示中文,只能表示一些單字元元素。針...
python基礎筆記
python的資料型別 1 基本資料型別 none,boolean,integer,float,long,complex 匯入python精確除法 from future import division 2 序列型別 list,tuple,string,xrange 只在python 2.中有 py...