python中的初学者编程(3.4)
是否可以在chr()和ord()中传递多个值?
我尝试的是以下内容:
userInput = input('Please write your input: ')
> Hello
result = ord(userInput) #here is the error because i put multiple values instead of just one
print(result)
这是我正在寻找的输出:72 101 108 108 111
(你好)但是我得到一个错误告诉我我只能在chr()/ ord()中传递1个字符/值
这可能吗?如果没有,你能否为我提供正确的方向?谢谢
答案 0 :(得分:0)
您可以使用map
功能,以便分别对所有字符应用ord
:
In [18]: list(map(ord, 'example'))
Out[18]: [101, 120, 97, 109, 112, 108, 101]
或直接在字符串上使用bytearray
:
In [23]: list(bytearray('example', 'utf8'))
Out[23]: [101, 120, 97, 109, 112, 108, 101]
但请注意,当您处理unicodes bytearray
时,不返回类似ord
的数字,而是返回基于传递的编码(0到256之间的数字)的字节值数组:< / p>
In [27]: list(bytearray('€', 'utf8'))
Out[27]: [226, 130, 172]
In [25]: ord('€')
Out[25]: 8364
答案 1 :(得分:0)
使用列表推导 - 将ord
应用于字符串中的每个字符。
In [777]: [ord(i) for i in 'hello']
Out[777]: [104, 101, 108, 108, 111]
答案 2 :(得分:0)
您可以使用列表推导将ord
应用于字符串的每个字符,然后将它们连接起来以获得您正在寻找的结果:
result = " ".join([str(ord(x)) for x in userInput])