当前位置:  开发笔记 > 编程语言 > 正文

如何获取字符的ASCII值?

如何解决《如何获取字符的ASCII值?》经验,为你挑选了4个好方法。

如何在Python中获取字符的ASCII值?int



1> Matt J..:

从这里:

函数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.


ord() - Python 3.6.5rc1文档

ord() - Python 2.7.14文档


请注意,chr在Python 3中也充当unichr``chr(31415) - >'窷'`
@ njzk2:它不使用任何字符编码,它在Python 2中返回一个bytestring.你可以将它解释为一个字符,例如`chr(ord(u'й'.encode('cp1251'))). decode('cp1251')==u'й'`.在Python 3(或Python 2中的`unichr`)中,输入数被解释为Unicode codepoint integer ordinal:`unichr(0x439)=='\ u0439'`(前256个整数与latin-1具有相同的映射: `unichr(0xe9)== b'\ xe9'.decode('latin-1')`,第一个128 - ascii:`unichr(0x0a)== b'\ x0a'.decode('ascii')`它是Unicode的东西,而不是Python).
@eLymar:它是"序数"的缩写,它具有与"秩序"类似的语言根源 - 即字符的数字而非符号表示
为什么将函数称为“ ord”?

2> Ignacio Vazq..:

请注意,ord()这不会给你ASCII值; 它为你提供了它所在的任何编码的字符的数值.因此,ord('ä')如果你使用Latin-1,结果可以是228,或者TypeError如果你使用的是UTF-8 ,它可以提高a .如果你传递一个unicode,它甚至可以返回Unicode代码点:

>>> ord(u'?')
12354


如何找出在给定情况下使用的编码?

3> Jacob Krall..:

您正在寻找:

ord()



4> ShadowRanger..:

接受的答案是正确的,但如果您需要将一大堆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,但除非这会迫使你进行页面颠簸,这不太重要.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有