打印字符串时是否可以显示space、tab等特殊字符?

Is it possible to display special characters such as space, tab etc. when printing a string?

例如我有一个字符串

line = r'I like cakes'

这样打印可以吗?

 I\s like\s cakes

repr() 在这种情况下不起作用

您可以通过用预期的顺序替换空格来实现此目的:

Python 3.7.2 (default, Jan 10 2019, 23:51:51) 
[GCC 8.2.1 20181127] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> line = r'I like cakes'
>>> print(line.replace(" ", "\s "))
I\s like\s cakes

要同时支持标签,您可以使用:

Python 3.7.2 (default, Jan 10 2019, 23:51:51) 
[GCC 8.2.1 20181127] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> line = "I like\tcakes"
>>> print(line)
I like  cakes
>>> print(line.replace(" ", "\s ").replace("\t", "\t"))
I\s like\tcakes

您可以通过 Python String replace() Method:

line = r'I like cakes'    
print(line.replace(" ", "\s "))

输出:

I\s like\s cakes

实现此目的的一种方法是为每个要替换的字符创建一个替换字典。

rep_dict = {' ': '\s', '\n': '\n', '\t': '\t'}

以下函数将执行必要的替换:

def quote(s):
    return "".join(repr_dict.get(c, c) for c in s)

repr_dict.get 调用尝试在字典中查找字符,并使用字符本身作为查找失败的默认值。