1. 程式人生 > >Python十日談:第一日-標準型別

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
""(空字串)
[](空列表)
()(空元組)
{}(空字典)

參考文獻

  1. Python核心程式設計