我想将输入的字符串用十六进制表示,首先声明,并不是转换成十六进制的字符串,而是像下面的反过程:
>>> '\x61\x62\x63\x64' 'abcd'
我尝试了python3中的encode('UTF-8')等方法,但是都没有找到怎样可以达到我的目的,Python中是否能够完成这个功能,如果可以,怎样才能达到我的目的,希望各位大神能够指教。
学习是最好的投资!
>>> '\x61\x62\x63\x64' == 'abcd' True
Tiada cara untuk mencetak 'x61x62x63x64' Jika anda hanya mahu menyemak nilai ascii yang sepadan dengan 'a', anda boleh menggunakan ord()
>>> ord('a') 97 >>> chr(97) 'a'
Saya tidak tahu sama ada ini boleh memenuhi keperluan anda
>>> [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
Terdapat beberapa fungsi dalam perpustakaan binasci yang boleh melakukan ini
import binascii print(binascii.b2a_hex(b'abcd')) # b'61626364'
Atau tulis terus seperti ini dalam py3.5
print(b'abcd'.hex()) # 61626364
Tiada cara untuk mencetak 'x61x62x63x64' Jika anda hanya mahu menyemak nilai ascii yang sepadan dengan 'a', anda boleh menggunakan ord()
.Saya tidak tahu sama ada ini boleh memenuhi keperluan anda
python3
Terdapat beberapa fungsi dalam perpustakaan binasci yang boleh melakukan ini
Atau tulis terus seperti ini dalam py3.5