python基礎之資料型別
資料型別:
基礎資料型別:
整數:正負整數
浮點數:也就是小數,一般用科學計數法表示,如:1.02e-12
布林值:True/False,其實就是整數,True=1, False=0
字串:用單引號或則雙引號引用的資料。
空值:None,表示沒有物件,統一標準佔位使用,不是表示0.
複雜資料型別:
元組(tuple):用小括號括起,其值不可改變,如:a = (1, 2, “123”)。注意若只有一個數據時,應新增逗號,和小括號表示式區分。
如:a = (2),表示a = 2,小括號表示是運算
a = (2, ),表示是一個元組,不是運算。
列表(list): 用方括號表示,其值可以修改,可以用下標訪問具體某位資料。如:a = [1, 2, ‘234’],a[0] = 1, a[1] = 2, a[2] = ‘234’
字典(dict):用大括號表示,形式為key-value,其值可以修改,key為不可改變資料。如:a = {'12’:34, ‘ab’:’345345’}
集合(set):只有key值,沒有對應值,是個無序去重的集合,用於資料集合一些操作,如並集、子集等。
不可變數、可變變數說明:
不可變數有:整數、浮點數、布林值、字串、元組
可變變數有:列表、字典
舉例說明,不可變數,如下:
a = 10
b = a
a = 12
在python中,一切皆是物件。故a = 10中,變數a是物件,會在記憶體開闢一個記憶體表示物件a;值10也是物件,也會開闢記憶體儲存。而賦值即把變數a指向值物件所在記憶體。變數a=12時,原來值的物件不會改變,會新建一個物件儲存12,並把a指向新物件。
所謂不可變物件,實質是指變數指向物件的記憶體沒有發生修改。
可變變數,如下:
a = [1, 23, 34]
a[0] = 50
變數a指向記憶體,記憶體又指向對應值。所謂可變變數,實質是a指向的記憶體,值有改變。也就是所a[0] = 50時,變數a指向記憶體改變了。
綜合所述:
不可變數,類是C語言的指標,只改變指標的值,就是改變指標對應的記憶體地址,而原本存資料的記憶體的值沒有改變。
可變變數,類是C語言中兩級指標,雖然也是改變第一級指標的值,沒有修改指標對應的記憶體地址的值,但是對於變數來說,他是指向第一級指標的的記憶體,故記憶體改變了。
所以,在不可變數中,使用函式是不會修改其本身的值,而會生成一個新的物件。可變變數中,會對本身做出修改。如:
a = “234.45”
a.replace(‘.’, ‘-‘) 此時,變數a不會做出修改
a = [2, 4, 1]
a.sort() 此時,變數a會做出相應修改
字串說明:
3.x字串預設為unicode編碼,對於python提供的編碼解碼函式(encode/decode)來說。預設情況,針對unicode來說,所有編碼都是從unicode轉換來的,而解碼就是從其他編碼轉化為unicode。
列表操作:
a = [2, 3, 4]
新增:
a.append(5) 新增到末尾
b.insert(2, ‘two’) 在序列號為2插入資料
獲取:
正向獲取,從序列號0開始遞增
a[2] 獲取從0開始,序號為2的值(3)
反向獲取,從序號-1開始遞減
a[-1] 最後一位資料
獲取並刪除:
a.pop(0) 獲取第0位資料並修改列表
a.pop() 獲取最後一位資料並修改列表
字典操作:
a = {‘1’:234, ‘345’:’this’}
新增:
a[‘14’] = ‘book’
獲取:
直接獲取,如b = a[‘1’]
函式獲取:
b = a.get(‘1’) 沒有對應key值,返回None
b = a.get(‘1’, -1) 沒有對應key值,返回-1
獲取並刪除:
a.pop()