我想将输入的字符串用十六进制表示,首先声明,并不是转换成十六进制的字符串,而是像下面的反过程:
>>> '\x61\x62\x63\x64' 'abcd'
我尝试了python3中的encode('UTF-8')等方法,但是都没有找到怎样可以达到我的目的,Python中是否能够完成这个功能,如果可以,怎样才能达到我的目的,希望各位大神能够指教。
学习是最好的投资!
>>> '\x61\x62\x63\x64' == 'abcd' True
Il n'y a aucun moyen d'imprimer 'x61x62x63x64'. Si vous souhaitez simplement vérifier la valeur ascii correspondant à 'a', vous pouvez utiliser ord()
>>> ord('a') 97 >>> chr(97) 'a'
Je ne sais pas si cela peut répondre à vos exigences
>>> [hex(ord(x)) for x in 'abcd'] ['0x61', '0x62', '0x63', '0x64']
python3
>>> print(''.join((r'\x%2x'%ord(c)for c in 'abcd'))) \x61\x62\x63\x64 >>> print(''.join((r'\x%2x'%c for c in bytes('abcd','l1')))) \x61\x62\x63\x64 >>> print(''.join((r'\x%2x'%c for c in b'abcd'))) \x61\x62\x63\x64
Il existe plusieurs fonctions dans la bibliothèque binascii qui peuvent faire cela
import binascii print(binascii.b2a_hex(b'abcd')) # b'61626364'
Ou écrivez directement comme ça dans py3.5
print(b'abcd'.hex()) # 61626364
Il n'y a aucun moyen d'imprimer 'x61x62x63x64'. Si vous souhaitez simplement vérifier la valeur ascii correspondant à 'a', vous pouvez utiliser ord()
.Je ne sais pas si cela peut répondre à vos exigences
python3
Il existe plusieurs fonctions dans la bibliothèque binascii qui peuvent faire cela
Ou écrivez directement comme ça dans py3.5