Python 单行打印从 ASCII 数字转换的文本?

标签 python ascii code-snippets idioms ordinal

以下命令从其 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/

相关文章:

Python Selenium 找到输入元素但无法发送键

postgresql - 使用 ASCII 31 字段分隔符作为 Postgresql COPY 分隔符

c# - 摆脱字符串中的扩展 ASCII 字符

emacs - 带有 yasnippet 的框式注释

c# - 使用和程序集引用不会从 C# 代码段自动导入

python - 在 Anaconda 环境中安装 pydot 和 graphviz 包

Python、PyTables - 利用内核内搜索

python - python中如何造成栈溢出和堆溢出

python - 从字符串 python 中删除\xe2\x80\xa6

c# - 有一种方法可以通过自动创建使用引用来创建代码片段吗?