Python十日談:第一日-標準型別
程式 = 資料 + 演算法。解方程還需要個x,y,z呢,所以程式當中變數就理所當然的非常基礎和重要了。Python相對於其他語言,變數宣告更便捷的地方在於,不需要宣告變數的型別。因為Python是一種動態型別語言,顧名思義,也就是變數型別在宣告的那一刻被Python內建編譯器決定。
基本變數
數字
”’
age = 100
weight = 35.6
”’
更多型別的有符號整型、浮點值、複述這些使用場景比較小,為了最小化了解Python,就不深入介紹了。
思考
>>> a = 100
>>> b = 100
>>> a is b
True
>>> a = 1024
>>> b = 1024
>>> a is b
False
這是為什麼呢? 因為Python為了節省記憶體,一般一定範圍內的int型別(似乎是-127~128)都是分配同一個記憶體地址儲存數值,顯然1024超過了這個範圍,所以分配的是另外的記憶體地址了,所以導致a is b返回False。string型別也有同樣的原理。感興趣的同學自己搜尋一下。
字串
>>> stra = 'we23'
>>> stra[1]
'e'
>>> stra[-1 ]
'3'
>>> stra[1:3]
'e2'
我有特殊的index技巧!!這個就類似Java裡面字串類似。使用下標來訪問,不過python不僅支援下標,還支援負數的小標(其實就是倒數的下標),而且還支援切片操作。注意[:]操作符。從語言層面就支援字串操作是不是給力很多。要知道日常程式中,字串處理是最普遍的。
列表
>>> lista = [1, 2,'w', "we"]
>>> lista[3]
'we'
>>> lista[-2:-1]
['w']
>>> lista[1:3]
[2, 'w' ]
>>> lista[0] = 35
>>> lista
[35, 2, 'w', 'we']
列表類似Java裡面的陣列,可以通過下標訪問(當然也支援負數的下標),支援切片,並且裡面的每個元素都可以修改。我就不說列表裡面的每個元素可以是任意型別這種比較複雜的了,影響我們初學的目的。
元組
>>> tuplea = (1, 2, 'e', 're')
>>> tuplea[1]
2
>>> typlea[1] = 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'typlea' is not defined
元組裡面的每個元素是不可更改的。BUT,如果元組裡面某個元素是列表型別資料,那麼列表型別資料內部就可以更改了。元組儲存的是每個元素的地址,只改變地址的內容,是沒有問題的。
>>> tupleb = (1, 2, ['e', 'r'])
>>> tupleb[2][1] = "gotohell"
>>> tupleb
(1, 2, ['e', 'gotohell'])
字典
字典就是鍵值對的儲存。
>>> dica = {'b':35, 23:45, "we": "po"}
>>> dica[23]
45
>>> dica[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
>>> dica['b']
35
注意,鍵值對以“Key:Value”的方式定義。字典裡面的每個元素的鍵都是唯一的,且鍵值的型別可以為任意型別。非常靈活。
布林型別
所有的空物件,值為零的數值或者Null物件(None)的布林值都為False。詳細情形如下:
None
False
值為0的整數
0.0
""(空字串)
[](空列表)
()(空元組)
{}(空字典)
參考文獻
- Python核心程式設計