[python]常用的類型間轉換

python牽涉的數據類型比較繁多,編程過程中,經常需要在不同類型的數據之間進行恰當的轉換

1、int轉bytes

>>> x=97
>>> y=str(x) #轉str
>>> print(type(y))
<class 'str'>
>>> print(y.encode()) #轉bytes
b'97'
>>>

2、bytes轉uint

#
def U4(a):
    '''將單個bytes類型的字符a轉換成int返回'''
    a_int = int.from_bytes(a,byteorder='big',signed=False)
    if a_int>=97:#0xa~0xf
        a_int = a_int - 87
    else:
        a_int = a_int - 48
    return a_int

def U8(a):
    '''將bytes類型的符號a(長度2,對應8bit)轉成U8整數並返回'''
    if(len(a) != 2):
        print('error len')
    res = (U4(a[0:1])<<4) + U4(a[1:2])
return res

def U16(a):
    '''將bytes類型的符號a(長度4,對應16bit)轉成U16整數並返回'''
    if(len(a) != 4):
        print('error len')
    res = (U8(a[0:2])<<8) + (U8(a[2:4]))
    return res

def U32(a):
    '''將bytes類型的符號a(長度8,對應32bit)轉成U32整數並返回'''
    if(len(a) != 8):
        print('error len')
    res = (U16(a[0:4]) <<16) + U16(a[4:8])
    return res
#

3、char轉int

>>> x='a'
>>> y=ord(x) #轉ascii
>>> print(y)
97
>>> z=hex(y)
>>> print(z)
0x61
>>> print(type(z))
<class 'str'>

4、bytes與str互轉
 

>>> x=b'12'
>>> y=x.decode()  #bytes轉str
>>> print(x)
b'12'
>>> print(y)
12
>>> print(type(y))
<class 'str'>
>>> z=y.encode('utf-8') #str轉bytes
>>> print(z)
b'12'
>>> print(type(z))
<class 'bytes'>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章