梳理Python基本認識基本類型,從零開始,學習Python
先羅列一下Python提供的基本數據類型:數值(整型、浮點型、複數、布爾型等)、字元串、列表、元組、字典、集合等,將它們簡單分類如下:
數值(Numbers)
numbers:列出了一些簡單的例子
bool:調用bool()可以檢查變數的真假值True或False。
if語句通過判斷布爾類型來控制程序的執行路徑,同時在 Python 中數據有隱式的真假值,可以使代碼變得簡短有效,如下
字元串(String)
首先,我們定義一個s='python'語句,它在計算機中的執行順序是先在內存中創建一個字元串python,在程序棧寄存器中創建一個變數s,最後把python的地址賦給s。
再來看看字元串的一些常見操作
Advertisements
切片
替換
查找
find()
index()
轉大小寫
upper(),lower(),swapcase(),capitalize()
去空格,strip()、lstrip()、rstrip()
連接與分割
使用 + 連接字元串,每次操作會重新計算、開闢、釋放內存,效率很低,所以推薦使用join
還有一些常用的,這裡只列出來
以上是一些常見的操作,當然還有一個沒有列出來,這裡想單獨拿來談談,就是 Python3 字元串的編碼:
ASCII編碼出現最早,只有大小寫英文字母、數字和一些符號等127個字元,為了實現多語言表示,如中文的GB2312編碼,日文的Shift_JIS編碼等,Unicode孕育而生,它將所有語言都統一到一套編碼中;
Advertisements
在 Python3 中所有字元串在內存中均是 Unicode 保存;
當需要將文件保存到外設或進行網路傳輸時,就要進行編碼轉換,將字元轉換為位元組,以提高效率
在 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 允許通過繼承去自定義數據類型,很多第三方庫或框架都有類似的應用,這裡簡單實現了一個供參考:
各位大大們,要是覺得有用就點個關注,加個評論給小編一個鼓勵吧