python 字串內容

2022-09-13 14:39:10 字數 2339 閱讀 3929

python 2

str簡單文字(如ascii編碼)和二進位制資料(bytes)。

unicode

多位元組文字(寬字元,如中文)。

python 3

strunicode文字,包含ascii、utf-8等。

bytes

位元組,用於二進位制資料表示,在一些需要低階資料結構的時候用到,譬如c語言等。

bytearray

bytes型別的乙個變體,它是可變的並且支援原處修改。

編譯碼編碼:

根據乙個想要的編碼名稱,把乙個字串翻譯為其原始位元組形式。

解碼:

根據其編碼名稱,把乙個原始位元組串翻譯為字串形式的過程。

python 2中編譯碼物件的轉換關係

decode               encode

str ---------> unicode --------->str

示例:s = '北京'

s.decode('gb2312')

s.decode('gb2312').encode(encoding='utf-8',errors='strict')

python 3中編譯碼物件的轉換關係

decode       encode

bytes ------> str(unicode)------>bytes

示例:

s = '北京'

s.encode()

b'\xe5\x8c\x97\xe4\xba\xac' #\為轉義字元,x為十六進製制的標記,u為unicode

s.encode().decode()

檢視物件或平台的編碼環境

1)檢查python預設的編碼

import sys

sys.getdefaultencoding()

reload(sys)

sys.setdefaultencoding('utf8')

2)檢查字元物件的編碼,這個模組識別不准,可以參考鏈結

import chardet

print chardet.detect(html)

識別模組不太準的時候,可以使用decode採用一些常用的中文編碼進行解碼,如gbk,gb2312等。

1)python 3預設採用utf-8的字符集,而python 2預設採用ascii的編碼方式。

2)python 2中存在str和unicode型別,python 3分為bytes和str型別。

3)python 2的str型別可以表示二進位制和字串資料,而python 3中進行了區分

4)python 2和3版本中的編譯碼轉換規則不太一樣

python 2中進行編碼轉換,必須先轉換為unicode物件

python 3由於本身就值unicode,所以可直接進行轉換編碼

5)檔案讀取

python 2

讀取檔案時,採用r和rb讀取檔案檔案時,無區別。

讀取檔案時,直接讀取位元組再通過ascii解碼,如果包含非ascii字元的列印為直接。

read方法輸出指定位元組數。

python 3

讀取文字檔案時,採用r和rb模式讀取輸出是不同的,rb輸出位元組,r輸出字元。

讀取時採用utf-8進行解碼讀取。

read方法輸出字元數。

1)位元組順序標記bom

例如,在utf-16和utf-32編碼中,bom指定大尾還是小尾格式(基本上,是確定乙個位字串的哪一端最重要)。

處理bom的方法

在檔案進行寫入和讀取時使用具體編碼名來處理bom,如下:

>>> open('spam.txt', 'r', encoding='utf-8-sig').read()

'spam\nspam\n' #使用具體的編碼名處理bom

2)轉換編碼

我們總是可以把乙個字串轉換為不同於源字符集預設的一種編碼,但是,我們必須顯式地提供乙個編碼名稱以進行編碼和解碼:

>>>s = 'aäbèc'

>>>s.encode() # default utf-8 encoding

b'a\xc3\x84b\xc3\xa8c'

>>>t = s.encode('cp500') #轉換為cp500編碼

3)原始檔字符集編碼宣告

改變預設的檔案編碼形式,在檔案的第一或第二行宣告。

# -*- coding: latin-1 -*-

1、資料分層表示方法。

檔案層面:                 位元組序列,可分為各類編碼形式的位元組序列,如unicode,base64,自定義的位元組流。

python直譯器記憶體層面:unicode碼或位元組碼。    

字串內容

那麼,你是否知道字串也是物件,同樣具有方法。這些方法可以完成包括檢驗一部分字串和去除空格在內的各種工作。你在程式中使用的字串都是str類的物件 還真不知道字元是物件。usr bin python filename str methods.py name swaroop this is a strin...

學習總結 Python字串內容

前言 該文章總結了之前學習的python字串內容 2020 01 16 天象獨行 學習python,首先我們需要引入乙個 物件 的概念。關於 物件 的理解將會貫穿整個python的學習。正所謂 萬物皆物件 如果要準確的描述python物件是什麼。我們可以從 身份 型別 值 三個維度來描述。同時這三個...

python字串 Python 字串

建立字串很簡單,只要為變數分配乙個值即可。例如 var1 hello world var2 python runoob python訪問字串中的值python不支援單字元型別,單字元在 python 中也是作為乙個字串使用。python訪問子字串,可以使用方括號來擷取字串,如下例項 例項 pytho...