是什么导致ord()无法打印unicode?

2024-04-25 08:55:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

def encoder():

    plain=input('Enter a word: ')

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

Tags: inencoderforinputdef字母unicodeword
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=' ')

通过使用x格式规范,它使用^{} function将整数格式化为小写的十六进制数。你知道吗

现在你得到:

>>> 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

您没有对ord(i)的结果做任何操作;您只需调用它并丢弃值。您需要将其分配给某个对象,或打印它:

print(ord(i), end='')

相关问题 更多 >