天天看點

python bytes轉str_Python基本認識基本類型

python bytes轉str_Python基本認識基本類型

先羅列一下Python提供的基本資料類型:數值(整型、浮點型、複數、布爾型等)、字元串、清單、元組、字典、集合等,将它們簡單分類如下:

python bytes轉str_Python基本認識基本類型

歡迎點選右上角關注小編。私信學習資料不僅擷取大量學習資料,在學習中遇到的問題也可以咨詢我。

字元串(String)

首先,我們定義一個s='python'語句,它在計算機中的執行順序是先在記憶體中建立一個字元串python,在程式棧寄存器中建立一個變量s,最後把python的位址賦給s 。

再來看看字元串的一些常見操作

  • 切片
python bytes轉str_Python基本認識基本類型
  • 替換
python bytes轉str_Python基本認識基本類型
  • 查找

find

python bytes轉str_Python基本認識基本類型

index

  • 轉大小寫

upper,lower,swapcase,capitalize

python bytes轉str_Python基本認識基本類型
  • 去空格,strip、lstrip、rstrip
  • 連接配接與分割

使用 + 連接配接字元串,每次操作會重新計算、開辟、釋放記憶體,效率很低,是以推薦使用join

  • 還有一些常用的,這裡隻列出來
python bytes轉str_Python基本認識基本類型

以上是一些常見的操作,當然還有一個沒有列出來,這裡想單獨拿來談談,就是 Python3 字元串的編碼:

  1. ASCII 編碼出現最早,隻有大小寫英文字母、數字和一些符号等127個字元,為了實作多語言表示,如中文的GB2312編碼,日文的Shift_JIS編碼等,Unicode孕育而生,它将所有語言都統一到一套編碼中;
  2. 在 Python3 中所有字元串在記憶體中均是 Unicode 儲存;
  3. 當需要将檔案儲存到外設或進行網絡傳輸時,就要進行編碼轉換,将字元轉換為位元組,以提高效率
python bytes轉str_Python基本認識基本類型

在 Python3 中,記憶體中的 Unicode 字元用 str 對象表示,對應于的,Python3 使用了一種全新的資料類型來表示位元組,就是 bytes,是以 encode 轉換後的位元組流就不是 str 對象,而是 bytes 位元組對象,它當然支援分片、索引、基本數值運算等操作,但 str 與 bytes 類型的資料不能進行+操作。

來看看 bytes 資料類型的定義:

python bytes轉str_Python基本認識基本類型

從上述例子中可以看出 bytes 對象不能由超出 ASCII 碼範圍的字元組成,隻接受 ASCII 碼這個範圍的字元。

python bytes轉str_Python基本認識基本類型

同樣,從上面的例子我們還可以總結出一些坑爹的東西:

  1. Unicode 碼在 Python3 中有兩種表示方式,u'字元串'和u四位十六進制數;區分r'字元串' ,是表示不轉義的原始字元串
  2. 将字元直接以 Unicode 碼儲存使用unicode-escape
  3. 在 Python 的互動式環境中,輸出 bytes 對象時,可按 ASCII 碼表示,或按十六進制x表示
  4. 在 Python 頭聲明#-*- coding:utf-8 -*-,是告訴 Python 編譯器按utf-8的方式讀取,這個聲明并不能将 Python 檔案本身儲存成utf-8,這時候需要借助文本編輯器儲存檔案編碼。

編碼部分我的了解就是這些了,感覺還是沒有将編碼問題總結清楚(無奈),還有什麼補充的可以留言給小編

清單(List)

Python 可使用文法糖表示清單,其中的元素可以是任何類型,以順序存儲的方式動态儲存資料:

python bytes轉str_Python基本認識基本類型

元組(Tuple)

元組與清單不同的是,元組是不可變類型(immutable),不能對元素進行修改,但記憶體可以明确知道需要配置設定多少空間給元組

字典(Dictionaries)

字典是通過鍵值對的方式進行存儲,占用大量的記憶體而獲得極快的查找和插入速度,而清單剛好相反,查找和插入速度随着元素的增加而變慢,但占用的記憶體較小。字典雖然是可變類型,但因為它的 value 的位置是根據 key 計算出來的,是以 key 必須是不可變對象,這樣才能確定字典的正确使用。

python bytes轉str_Python基本認識基本類型

自定義資料類型

Python 允許通過繼承去自定義資料類型,很多第三方庫或架構都有類似的應用,這裡簡單實作了一個供參考:

python bytes轉str_Python基本認識基本類型