Python中反斜杠接数字的转义机制及相关现象疑问
Python 反斜杠加数字转义行为说明
你观察到的特殊现象都是Python支持八进制转义序列的特性导致的,具体对应你的三个问题解释如下:
你提到的
\t、\n这类属于已命名的ASCII转义字符,而反斜杠加数字的形式属于未命名的ASCII字符的数值转义写法。
1. '\1\2\3\4\5\6'输出☺☻♥♦♣♠的原因
Python中反斜杠后接13位范围在07的数字时,会被识别为八进制转义序列,会将八进制数值转换为对应的ASCII字符输出:
\1到\6对应的八进制数值转十进制后就是1~6- 这几个数值对应CP437字符集(DOS/Windows控制台默认兼容的早期字符集)的低区控制字符图形化显示结果,正好对应你看到的☺、☻、♥、♦、♣、♠六个符号。
2. '\7'触发提示音的原因
\7转义后对应的ASCII值为十进制的7,这是ASCII标准中定义的响铃控制字符(BEL)- 当控制台输出该字符时,会默认触发系统的提示音效果,属于该字符的标准预设行为。
3. \8原样输出的原因
- 八进制的合法数位只有0~7,8不属于八进制的有效取值
- Python解析转义序列时如果识别到反斜杠后第一位数字不符合八进制规则,就会判定当前转义序列无效,将反斜杠和后续字符作为普通字符原样输出,所以
print('\8')的结果就是\8。
内容的提问来源于stack exchange,提问作者Liam
相关产品推荐
相关产品推荐

