0

它目前只是打印回字母,我想知道如何让它打印 unicode。

def encoder():

    plain=input('Enter a word: ')

    for i in plain:
        ord(i)
        print(i, end='')
4

2 回答 2

3

你没有对ord(i);的结果做任何事情 您只需调用它并丢弃该值。您需要将其分配给某些东西,或打印它:

print(ord(i), end='')
于 2013-11-02T19:08:12.803 回答
2

整数和字符串是不可变的,ord()不会i为您就地更改。您需要将返回的结果值分配ord()i

i = ord(i)

或者只是打印函数的输出而不是i

for i in plain:
    print(ord(i), end='')

这将打印代码点的十进制值。如果你想要十六进制输出,你需要格式化整数返回值ord(),可能在它们之间有一些空格:

for i in plain:
    print(format(ord(i), 'x'), end=' ')

这使用该format()函数x通过使用格式规范将整数格式化为小写十六进制数。

现在你得到:

>>> plain = 'Hello world!'
>>> for i in plain:
...     print(format(ord(i), 'x'), end=' ')
... 
48 65 6c 6c 6f 20 77 6f 72 6c 64 21
于 2013-11-02T19:08:33.813 回答