如何获取字符的ASCII值?

时间:2008-10-22 20:39:57

标签: python ascii

如何在ASCII中将Python字符值int作为{{1}}?

6 个答案:

答案 0 :(得分:1194)

来自here

  

函数ord()将获得int值   的焦点。如果你想要   玩完之后转回来   数字,函数chr(​​)可以解决问题。

>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>

在Python 2中,还有unichr函数,返回序号为unichr的{​​{3}}字符:

>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'

在Python 3中,您可以使用chr代替unichr


Unicode

ord() - Python 3.6.5rc1 documentation

答案 1 :(得分:152)

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

>>> ord(u'あ')
12354

答案 2 :(得分:46)

您正在寻找:

ord()

答案 3 :(得分:25)

接受的答案是正确的,但是如果您需要将一大堆ASCII字符一次转换为ASCII码,则有一种更聪明/有效的方法。而不是做:

stdout_logfile=/var/log/supervisor/%(program_name)s.log 

或稍快一点:

for ch in mystr:
    code = ord(ch)

转换为直接迭代代码的Python本机类​​型。在Python 3上,它是微不足道的:

for code in map(ord, mystr):

并且在Python 2.6 / 2.7上,它只涉及更多,因为它没有Py3样式for code in mystr.encode('ascii'): 对象(bytesbytes的别名,它按字符迭代),但他们确实有str

bytearray

编码作为按顺序原生迭代的类型意味着转换速度更快;在Py2.7和Py3.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'): 迭代str以获取其ASCII代码开始花费大约两倍于map(ord, mystr) 10 len比在Py2上使用str或在Py3上使用bytearray(mystr),并且随着mystr.encode('ascii')越长,为str支付的乘数上升到~6.5x-7x。

唯一的缺点是转换是一次性的,所以你的第一个结果可能需要更长的时间,真正巨大的map(ord, mystr)会有一个相应大的临时str / {{1}但是,除非这会迫使你进行翻页,这不太重要。

答案 4 :(得分:0)

要获取字符的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]

答案 5 :(得分:0)

TASK [example task] *************************************************************************************************************************************************************************************************** ok: [localhost] => { "msg": [ "service_name myService", "service_port 8080" ] } TASK [example with items list on a templated var] ********************************************************************************************************************************************************************* ok: [localhost] => (item=service_name myService) => { "msg": "service_name myService" } ok: [localhost] => (item=service_port service port 8080) => { "msg": "service_port service port 8080" } 返回ord(x)的Unicode。

由于Unicode是ASCII的扩展,所以x也适用于所有由ASCII编码的事物。请注意,返回值以十进制表示。如果您希望将其用作其他基础,则可以使用

ord bin(ord(x)) oct(ord(x))

您认为合适。