梳理Python基礎認識基本型別,從零開始,學習Python!
先羅列一下Python提供的基本資料型別:數值(整型、浮點型、複數、布林型等)、字串、列表、元組、字典、集合等,將它們簡單分類如下:
數值(Numbers)
numbers:列出了一些簡單的例子
bool:呼叫bool()可以檢查變數的真假值True或False。
if語句通過判斷布林型別來控制程式的執行路徑,同時在 Python 中資料有隱式的真假值,可以使程式碼變得簡短有效,如下
字串(String)
首先,我們定義一個s='python'語句,它在計算機中的執行順序是先在記憶體中建立一個字串python,在程式棧暫存器中建立一個變數s,最後把python的地址賦給s 。
再來看看字串的一些常見操作
- 切片
- 替換
- 查詢
find()
index()
- 轉大小寫
進群:960410445 即可獲取數十套PDF!
upper(),lower(),swapcase(),capitalize()
- 去空格,strip()、lstrip()、rstrip()
- 連線與分割
使用 + 連線字串,每次操作會重新計算、開闢、釋放記憶體,效率很低,所以推薦使用join
- 還有一些常用的,這裡只列出來
以上是一些常見的操作,當然還有一個沒有列出來,這裡想單獨拿來談談,就是 Python3 字串的編碼:
- ASCII 編碼出現最早,只有大小寫英文字母、數字和一些符號等127個字元,為了實現多語言表示,如中文的GB2312編碼,日文的Shift_JIS編碼等,Unicode 孕育而生,它將所有語言都統一到一套編碼中;
- 在 Python3 中所有字串在記憶體中均是 Unicode 儲存;
- 當需要將檔案儲存到外設或進行網路傳輸時,就要進行編碼轉換,將字元轉換為位元組,以提高效率
進群:960410445 即可獲取書十套PDF!
在 Python3 中,記憶體中的 Unicode 字元用 str 物件表示,對應於的,Python3 使用了一種全新的資料型別來表示位元組,就是 bytes,所以 encode 轉換後的位元組流就不是 str 物件,而是 bytes 位元組物件,它當然支援分片、索引、基本數值運算等操作,但 str 與 bytes 型別的資料不能進行+操作。
來看看 bytes 資料型別的定義:
從上述例子中可以看出 bytes 物件不能由超出 ASCII 碼範圍的字元組成,只接受 ASCII 碼這個範圍的字元。
同樣,從上面的例子我們還可以總結出一些坑爹的東西:
- Unicode 碼在 Python3 中有兩種表示方式,u'字串'和\u四位十六進位制數;區分r'字串' ,是表示不轉義的原始字串
- 將字元直接以 Unicode 碼儲存使用unicode-escape
- 在 Python 的互動式環境中,輸出 bytes 物件時,可按 ASCII 碼錶示,或按十六進位制\x表示
- 在 Python 頭宣告#-*- coding:utf-8 -*-,是告訴 Python 編譯器按utf-8的方式讀取,這個宣告並不能將 Python 檔案本身儲存成utf-8,這時候需要藉助文字編輯器儲存檔案編碼。
編碼部分我的理解就是這些了,感覺還是沒有將編碼問題總結清楚(無奈),還有什麼補充的可以留言給小編
列表(List)
Python 可使用語法糖[]表示列表,其中的元素可以是任何型別,以順序儲存的方式動態儲存資料:
元組(Tuple)
元組與列表不同的是,元組是不可變型別(immutable),不能對元素進行修改,但記憶體可以明確知道需要分配多少空間給元組
字典(Dictionaries)
字典是通過鍵值對的方式進行儲存,佔用大量的記憶體而獲得極快的查詢和插入速度,而列表剛好相反,查詢和插入速度隨著元素的增加而變慢,但佔用的記憶體較小。字典雖然是可變型別,但因為它的 value 的位置是根據 key 計算出來的,因此 key 必須是不可變物件,這樣才能確保字典的正確使用。
自定義資料型別
Python 允許通過繼承去自定義資料型別,很多第三方庫或框架都有類似的應用,這裡簡單實現了一個供參考:
各位大大們,要是覺得有用就點個關注,加個評論給小編一個鼓勵吧