① 請教python3 bytearray 的問題
以前在 python2 中 a=bytes(bytearray((182,)))結果是 a='\xb6'
現在在 Python3 運行結果是 a=b'\xb6',嘗試各種 a.decode()均失敗了,請問如何能在 Python3 得到和 Python2 一樣的結果呢?
1. Python3 裡面的 str 已經是 unicode str 了。
2. bytes(bytearray((182,)))你用的就是 bytes 函數,所以理所當然的,無論 py2 還是 py3 都返回 bytes 類型,只不過 py2 時 bytes==str 而已。
3. 如果你想得到的是 latin_1 編碼的\xb6 代表的 str,請用.decode('latin-1')
② python中如何定義成員為bytearray的數組
1、Python數組的變數是不需要定義的,這方面和php一樣,它比javascript還是寬松,不過它是用縮進作為段落標識的,作為習慣了C語言風格語法的人,可能一開始會很不習慣使用。
但細一想,其實也是很正常,很合理的。
2、雖然Python在面向過程/面向對象方面也是很寬松,但實際上一般的程序都是一個主入口。
3、然後不斷調用其它類庫或函數,所以用縮進的方式並無不妥,那樣一方面要求用戶寫代碼時要規范,另一方面反向省去了多餘的{}。
4、與C語言風格相比,Python主要語法特點而下:
變數、字元串在python中,所有變數都是對象,數組其實是一個鏈表,並且可以進行相應的鏈表操作。對於普通數據類型,定義/賦值方法都是一樣的
③ python3 16進制字元串、列表、字元串之間的轉換
在Python操作數據內容時,多數情況下可能遇到下面3種類型的數據處理:
hexstring 如:ƇC532145697A8B6F'
str 如:'x1Cx53x21x45x69x7Ax8Bx6F'
list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]
各種第三方模塊(如pyDes),或者自己寫的介面中,可能存在由於類型不統一需要在這3種數據中來回切換的情況。
需要用到的核心的方法如下:
list() 將對象轉換為list
str() 將對象轉換為str
bytearray() 將對象轉換為bytearray
bytearray.fromhex() 將對象從hexstring轉換為bytearray
binascii.b2a_hex() 將對象從str轉換為hexstring
如:[0x53, 0x21, 0x6A] -> 'x53x21x6a'
方法:list -> bytearray -> str
如:'x53x216a' -> [0x53, 0x21, 0x6A]
方法:逐個字元轉成十進制
如: [0x53, 0x21, 0x6A] -> A'
方法:list -> bytearray -> str -> hexstring
如: A' -> [0x53, 0x21, 0x6A]
方法:hexstring -> bytearray -> list
如: A' -> 'x53x21x6A'
方法:hexstring -> bytearray -> str
以上內容轉自: https://blog.csdn.net/diaoxuesong/article/details/72123415#
④ python的builtin function 中的bytearray方法該如何使用
使用引入是
from
time
import
*,引入換成
import
time。
1、
就是調用時類型錯誤撒,把相關語句出來看看。
2、這個問題偶爾會出現。通常是下標變數越界。比如list里有5個元素,你要取第6個元素,當然就沒了。
也有可能你自己誤以為它是個字典,你也按字典的語法寫的,陰差陽錯,程序以為你在使用一個數組,這時也會出現下標越界的錯誤。
3、也許把你有問題的代碼貼出來更好。
⑤ Python中字典的內建函數用法是什麼
字典內置函數&方法
Python字典包含了以下內置函數:
1 cmp(dict1, dict2)
比較兩個字典元素。
2 len(dict)
計算字典元素個數,即鍵的總數。
3 str(dict)
輸出字典可列印的字元串表示。
4 type(variable)
返回輸入的變數類型,如果變數是字典就返回字典類型。