Mat*_*t J 1265
从这里:
函数ord()将获取char的int值.如果您想在使用数字后转换回来,函数chr()可以解决问题.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
在Python 2中,还有unichr函数,返回其序数为参数的Unicode字符unichr:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
在Python 3中,您可以使用chr而不是unichr.
Ign*_*ams 159
请注意,ord()这不会给你ASCII值; 它为你提供了它所在的任何编码的字符的数值.因此,ord('ä')如果你使用Latin-1,结果可以是228,或者TypeError如果你使用的是UTF-8 ,它可以提高a .如果你传递一个unicode,它甚至可以返回Unicode代码点:
>>> ord(u'?')
12354
Sha*_*ger 33
接受的答案是正确的,但如果您需要将一大堆ASCII字符一次转换为ASCII码,则可以采用更聪明/有效的方法.而不是做:
for ch in mystr:
    code = ord(ch)
或稍快一点:
for code in map(ord, mystr):
您转换为直接迭代代码的Python本机类型.在Python 3上,它是微不足道的:
for code in mystr.encode('ascii'):
并且在Python 2.6/2.7上,它只涉及更多,因为它没有Py3样式bytes对象(bytes是一个别名str,按字符迭代),但它们确实有bytearray:
# 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的本地测试中,迭代a str以使用map(ord, mystr)启动获取其ASCII代码,使用大约两倍于len10 或者str使用bytearray(mystr)Py2或mystr.encode('ascii')Py3,并且随着str时间的延长,乘数map(ord, mystr)增加到~6.5x-7x.
唯一的缺点是转换是一次性的,所以你的第一个结果可能需要更长的时间,真正巨大的str将有一个相应大的临时bytes/ bytearray,但除非这会迫使你进行页面颠簸,这不太重要.
要获取字符的 ASCII 代码,可以使用该ord()函数。
这是一个示例代码:
value = input("Your value here: ")
list=[ord(ch) for ch in value]
print(list)
输出:
Your value here: qwerty
[113, 119, 101, 114, 116, 121]
| 归档时间: | 
 | 
| 查看次数: | 1242347 次 | 
| 最近记录: |