How to get the ASCII value of a character?
在python中,如何获得作为
从这里:
function ord() would get the int value
of the char. And in case you want to
convert back after playing with the
number, function chr() does the trick.
1 2 3 4 5 6 7 | >>> ord('a') 97 >>> chr(97) 'a' >>> chr(ord('a') + 3) 'd' >>> |
在python 2中,还有
1 2 3 4 | >>> unichr(97) u'a' >>> unichr(1234) u'\u04d2' |
在python 3中,可以使用
ORD()-python 3.6.5rc1文档
ORD()-python 2.7.14文档
请注意,
1 2 | >>> ord(u'あ') 12354 |
您正在寻找:
1 | ord() |
接受的答案是正确的,但是如果您需要一次将一整串ASCII字符转换为它们的ASCII代码,则有一种更聪明/更有效的方法可以做到这一点。而不是:
1 2 | for ch in mystr: code = ord(ch) |
或者稍微快一点:
1 | for code in map(ord, mystr): |
您可以转换为直接迭代代码的python本机类型。在python 3上,这是微不足道的:
1 | for code in mystr.encode('ascii'): |
而在python 2.6/2.7上,它只涉及了一点,因为它没有py3样式的
1 2 3 4 5 | # If mystr is definitely str, not unicode for code in bytearray(mystr): # If mystr could be either str or unicode for code in bytearray(mystr, 'ascii'): |
编码作为一种本机按顺序迭代的类型,意味着转换要快得多;在PY2.7和PY3.5上的本地测试中,使用
唯一的缺点是转换是同时进行的,所以您的第一个结果可能需要更长的时间,而真正巨大的