Language Python中的位元組串

2021-08-07 10:00:08 字數 1029 閱讀 9538

用python開發一些協議通訊相關的程式時,許多時候要用到位元組串的概念,即類似於c語言中的位元組陣列。因為協議在通訊的傳輸過程中,資料以payload的位元組流傳輸,因此python中的位元組串的開發使用需要注意。

python中用類似b』\x09\x89\x78』可以表示位元組串,實際上b」是類似字串,但是可以用hex格式表示其中的每個位元組的值,這樣很直觀。

b』\x』表示的時候,一定要注意\x只能是乙個位元組乙個位元組的表示,有個例子如下:

# 例1:手誤造成的有問題的例子

a = b'\xfe006795'

a[0] --> 254

# 0xfe

a[1] --> 48

# 字元'0'的ascii碼

a[2] --> 48

# 字元'0'的ascii碼

a[3] --> 54

# 字元'6'的ascii碼

a[4] --> 55

# 字元'7'的ascii碼

a[5] --> 57

# 字元'9'的ascii碼

a[6] --> 53

# 字元'5'的ascii碼

a[7] --> index out of range

# 例2:正常使用的例子

b = b'\xfe\x00\x67\x95'

b[0] -->

254b[1] -->

0b[2] -->

103b[3] -->

149b[4] --> index out of range

分析:

例1:b』\xfe006795』,只有加了』\x』字首的兩個字元』fe』才被認為是hex格式的位元組資料,其後的資料都沒有』\x』字首,所以被認為是ascii字元表示

例2:b』\xfe\x00\x67\x95』其實表示的是乙個位元組陣列,是一種字串,只是字串的內容並不是以ascii碼和unicode碼來顯示,而是直接顯示在記憶體中的內容。

既然是字串,那麼就可以使用其索引和切片等特性了。

Language Python的物件導向

python支援函式式程式設計,也支援物件導向程式設計。定義乙個類 class classname base class es optional documentation string static member declarations method declarations類的示例 class...

linux中 中括號 中的判斷引數

源自 http www.diybl.com course 6 system linux linuxjs 20081117 151774.html b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e...

從HIVE中中查詢

從hive資料庫查詢文件 by ymd 拼接sql語句 string sql select from doc file where contains name wildcard 拼接名稱查詢語句 if stringutils.isnoneempty unstructuredbean.getname ...