梳理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 字元串的編碼:

  1. ASCII編碼出現最早,只有大小寫英文字母、數字和一些符號等127個字元,為了實現多語言表示,如中文的GB2312編碼,日文的Shift_JIS編碼等,Unicode孕育而生,它將所有語言都統一到一套編碼中;

    Advertisements

  2. 在 Python3 中所有字元串在內存中均是 Unicode 保存;

  3. 當需要將文件保存到外設或進行網路傳輸時,就要進行編碼轉換,將字元轉換為位元組,以提高效率

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

來看看 bytes 數據類型的定義:

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

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

  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 可使用語法糖[]表示列表,其中的元素可以是任何類型,以順序存儲的方式動態儲存數據:

元組(Tuple)

元組與列表不同的是,元組是不可變類型(immutable),不能對元素進行修改,但內存可以明確知道需要分配多少空間給元組

字典(Dictionaries)

字典是通過鍵值對的方式進行存儲,佔用大量的內存而獲得極快的查找和插入速度,而列表剛好相反,查找和插入速度隨著元素的增加而變慢,但佔用的內存較小。字典雖然是可變類型,但因為它的value 的位置是根據 key 計算出來的,因此 key 必須是不可變對象,這樣才能確保字典的正確使用。

自定義數據類型

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

各位大大們,要是覺得有用就點個關注,加個評論給小編一個鼓勵吧

Advertisements

你可能會喜歡