舉例:a = 1
嚴格來說定義了乙個變數a
,儲存的是資料1
在記憶體中的乙個位址;通俗來說儲存的就是資料1
的記憶體位址。
a =
1print
("變數a:",id
(a),
hex(
id(a)))
# b儲存的是a變數儲存的記憶體位址
b = a
print
("變數b:",id
(b),
hex(
id(b)))
a =2
# a重新賦值,記憶體位址改變
print
("變數a:",id
(a),
hex(
id(a)
), a)
print
("變數b:",id
(b),
hex(
id(b)
), b)
# b的記憶體位址不變,指向的還是1
可變型別
不可變型別
my_list =[1
,2]print
("修改前:"
, my_list,
id(my_list)
)# 在原有記憶體空間的基礎上修改資料,記憶體位址不變3)
print
("修改後:"
, my_list,
id(my_list)
)# 重新賦值,記憶體位址改變
my_list =[3
,4]print
("重新賦值後:"
, my_list,
id(my_list)
)# 對於不可變型別來說,想要修改變數儲存的資料只能通過重新賦值來完成
my_str =
"abc"
print
("修改前:"
, my_str,
id(my_str)
)# 因為字串是不可變資料型別,不允許在原有記憶體空間的基礎上修改資料
# my_str[1] = 'd' # (x)
my_str =
"adc"
print
("修改後:"
, my_str,
id(my_str)
)
+=
和=
的區別
def
show
(param)
:print
("傳遞進函式後資料param:"
, param,
id(param)
)# `+=` 操作
param += param
print
("+=操作後param:"
, param,
id(param)
)# `=` 操作
param = param + param
print
("=操作後param:"
, param,
id(param)
)
a =[
100]
print
("原始資料a:"
, a,
id(a)
)show(a)
Python學習筆記 引用VS拷貝
賦值操作總是儲存物件的引用,一般情況下這就是我們想要的,但是在某些情況下,我們不希望修改一處物件而使其他引用這個物件的物件也跟著改變,那麼我們需要拷貝。拷貝的幾種方法 1.沒有限制條件的分片表示式可以複製序列 陣列,字串,元組 l1 1,2,3 l2 l1 l2 1,2,3 2.字典copy方法只可...
python學習筆記 Python基礎
雲計算web開發 django框架 科學計算 人工智慧 常用到的庫有numpy pandas matplotlib 等等 系統運維 金融 圖形gui google 豆瓣 知乎 facebook 主要特點是 解釋性 動態語言 強型別定義語言和弱型別定義語言。解釋型 python擁有良好的相容性,在安裝...
Python學習筆記(Python基礎)
1 資料型別和變數 1 字串是以單引號 或雙引號 括起來的任意文字,比如 abc xyz 等 2 如果 本身也是乙個字元,那就可以用 括起來,比如 i m ok 包含的字元是i,m,空格,o,k這6個字元。3 如果字串內部既包含 又包含 可以用轉義字元 來標識 print i m ok 結果為i m...