字符串中的“\”是什么意思?
例如:
>>> "\033"
输出是:
'\x1b'
如果您尝试打印字符串,结果将是一个奇怪的正方形
最危险的是,如果你把它输入你的shell:
>>> "\033" == "\x1b"
输出是:
True
显然,Python认为“\”是一个特殊的角色,但它是如何工作的?
它是由八进制数033
表示的字符。
在十进制中,该数字是27
。
在十六进制中,该数字是0x1b
。
请参阅Python使用的the escape sequences。
但如果你打印它,你会得到一个小方块。有什么解释吗?
您的平台最有可能使用ASCII编码。在ASCII编码中,数字27表示ESC
字符。它不是一个可打印的角色。您的终端打印一个小方块。其他终端可能会为其打印不同的符号。
这是一个字符串转义。他们有很多用途,他们是详细的here。特别是您看到字节值的八进制和十六进制表示。
\ ooo八进制值字符ooo(1,3)
\ xhh十六进制值hh(2,3)
\033
是esc和的八进制代码
\x1b
十六进制是一样的
检查man ascii
反斜杠是一个转义字符。例如,如果要打印带引号的字符串,则需要转义字符串中的引号,以便它们不会结束字符串。
例如:
print('the \'single quotes\' in this string are escaped!')