以mark lutz著的《python學習手冊》為教程,每天花1個小時左右時間學習,爭取兩周完成。 --- 寫在前面的話
2013-7-17 19:00 學習筆記
1,在python中,變數總是乙個指向物件的指標,而不是可改變的記憶體區域的標籤:給一變數賦值乙個新的值,並不是替換了原始的物件,而是讓這個變數去引用完全不同的乙個物件。例如:
a = 3;
b = a;
a += 2;
print a,b
結果為:
5 3
但是對於列表、字典以及通過class定義的物件,則存在共享引用的情況。例如:
l1 = [1,2,3]
l2 = l1
l1[0] = 24
print l1,l2
結果為:
[24, 2, 3] [24, 2, 3]
如果需要引用不同的物件,則需要拷貝物件。這可以通過分片技術或copy模組來實現。例如:
l1 = [1,2,3]
l2 = l1[:] #slice
l1[0] = 24
print l1,l2
結果為:
[24, 2, 3] [1, 2, 3]
或
import copy
l1 = [1,2,3]
l2 = copy.copy(l1)
l3 = copy.deepcopy(l1) # copy all nested parts
l1[0] = 24
print l1,l2,l3
結果為:
[24, 2, 3] [1, 2, 3] [1, 2, 3]
2,==可以判斷值是否相等,而is則可以判斷兩個變數是否指向了同乙個物件。例如:
m = [1,2,3]
l = m
print m==l,m is l
x = [1,2,3]
y = [1,2,3]
print x==y,x is y
結果為:
true true
true false
但是要注意,對於小的整數和小的字串,python有快取機制,不用的時候不會立即**。例如:
m = 128
l = 128
print m==l,m is l
x = 'hello world'
y = 'hello world'
print x==y,x is y
結果為:
true true
true true
Python學習筆記6 動態型別
參考部落格 python高階09 動態型別 python深入06 python的記憶體管理 都是非常棒的文章 其實這都是我前兩天通過手機看的部落格,感覺get到了新知識 新技能,今天早上挖的坑,因為上午有課 電子技術課程設計,嵌入式系統實驗室,學習stm32,以後也許會寫這些東西 下午沒課了,來填之...
python學習筆記(四) 系列資料型別
第五章 系列資料型別 主要注意點,注意使用python內建的函式,再具體使用過程中還要注意格式等的細節。第五章 系列資料型別 5.1 python系列資料概述 a 陣列 b python內建的系列資料型別 元組tuple 列表list 字串str 位元組資料bytes bytearray 其中,元組...
Python小白學習筆記四(容器型別 1 )
python小白學習筆記四 容器型別 1 通用操作 數 算符 用於拼接兩個容器 用原容器與右側容器拼接,並重新繫結變數 重複生成容器元素 用原容器生成重複元素,並重新繫結變數 依次比較兩個容器中元素,一但不同則返回比較結果。語法 1 容器通用操作 2 數 算符 3 兩個容器中所有元素拼接 4 str...