以下命令从其 ASCII 代表中打印文本。
python -c "print unichr(72)"
例如
[user@linux ~]$ python -c "print unichr(72)"
H
[user@linux ~]$
但这仅适用于单个角色。如果我有一个 ASCII 字符串,比如说 72 101 108 108 111 32 87 111 114 108 100
表示 Hello World
,是否可以在 Python 中将其转换为一行?
我一直在尝试以下命令,但没有成功。
[user@linux ~]$ python -c "print unichr(72)" "unichr(72)"
H
[user@linux ~]$
...
[user@linux ~]$ python -c "print unichr(72) unichr(72)"
File "<string>", line 1
print unichr(72) unichr(72)
^
SyntaxError: invalid syntax
[user@linux ~]$
...
[user@linux ~]$ python -c "print unichr(72)(72)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: 'unicode' object is not callable
[user@linux ~]$
最佳答案
$ python -c 'print "".join(unichr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100))'
Hello World
它是如何工作的
这会生成一个 unicode 字符列表:
>>> [unichr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)]
[u'H', u'e', u'l', u'l', u'o', u' ', u'W', u'o', u'r', u'l', u'd']
这将字符列表组合成一个字符串:
>>> ''.join(unichr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100))
u'Hello World'
Python3版本
unichr
在 python3 中不再存在。相反,使用:
>>> print("".join(chr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)))
Hello World
关于Python 单行打印从 ASCII 数字转换的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47627832/