如何获取字符的ASCII值

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


#1楼

您正在寻找:

ord()

#2楼

这里

函数ord()将获取char的int值。 如果您想在玩完数字后再转换回去,可以使用chr()函数来解决。

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

在Python 2中,还有unichr函数,返回其序数为unichr参数的Unicode字符:

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

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


ord()-Python 3.6.5rc1文档

ord()-Python 2.7.14文档


#3楼

注意, ord()本身不提供ASCII值; 它会以任何编码形式为您提供字符的数值。因此,如果您使用Latin-1,则ord('ä')可以为228,如果您使用UTF-,则它可以引发TypeError 8。 如果您传递一个unicode,它甚至可以返回Unicode代码点:

>>> ord(u'あ')
12354

#4楼

公认的答案是正确的,但是如果您需要一次将一大堆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对象( bytesstr的别名,按字符进行迭代),但是它们确实具有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的本地测试中,使用map(ord, mystr)迭代一个str来获取其ASCII码的时间是len 10 str两倍,而在Py2或mystr.encode('ascii')上使用bytearray(mystr) Py3上的mystr.encode('ascii') ,并且随着str变长,为map(ord, mystr)支付的乘数map(ord, mystr) -7x。

唯一的缺点是转换是一次完成的,因此您的第一个结果可能要花一点时间,并且真正巨大的str会具有相当大的临时bytes / bytearray ,但是除非这迫使您进行页面崩溃,否则这不是可能很重要。


#5楼

字符的ASCII值:

ch = input("Please enter Character  :  ")

print("The ASCII Value of %c = %d" %(ch, ord(ch)))

查找字符串中总字符的ASCII值

str1 = input("Please Enter your Own String : ")
for i in range(len(str1)):
print("The ASCII Value of Character %c = %d" %(str1[i], ord(str1[i])))

我们还可以使用chr()函数从给定的ASCII值中找到字符。 此函数接受ASCII值并返回给定ASCII值的字符。

从用户获取ASCII值

num = int(input("Enter ASCII value: "))
print(chr(num))

#6楼

要获取字符的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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值