答案 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
。
答案 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'):
对象(bytes
是bytes
的别名,它按字符迭代),但他们确实有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))
您认为合适。