使用多个字符

时间:2016-09-10 19:05:21

标签: python

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个字符/值 这可能吗?如果没有,你能否为我提供正确的方向?谢谢

3 个答案:

答案 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])