为什么'\ x'在Python中无效?

Pau*_*McG 24 python string ascii control-characters backslash

我正在尝试'\'字符,使用'\ a\b\c ...'只是为了自己枚举哪些字符Python解释为控制字符,以及什么.这是我发现的:

\a - BELL
\b - BACKSPACE
\f - FORMFEED
\n - LINEFEED
\r - RETURN
\t - TAB
\v - VERTICAL TAB
Run Code Online (Sandbox Code Playgroud)

我尝试的大多数其他字符,'\ g','\ s'等只是评估反斜杠和给定字符的2个字符的字符串.我明白这是故意的,对我来说很有道理.

但'\ x'是一个问题.当我的脚本到达此源代码行时:

val = "\x"
Run Code Online (Sandbox Code Playgroud)

我明白了:

ValueError: invalid \x escape
Run Code Online (Sandbox Code Playgroud)

'\ x'有什么特别之处?为什么它与其他非转义字符的处理方式不同?

Mar*_*ers 20

有一个表格列出了文档中的所有转义码及其含义.

Escape Sequence    Meaning                        Notes
\xhh               Character with hex value hh    (4,5)

笔记:

4.与标准C不同,只需要两个十六进制数字.
5.在字符串文字中,十六进制和八进制转义表示具有给定值的字节; 字节不必编码源字符集中的字符.在Unicode文字中,这些转义表示具有给定值的Unicode字符.


Kil*_*nDS 5

x用于在字符串中定义(一个字节)十六进制文字,例如:

'\x61'
Run Code Online (Sandbox Code Playgroud)

将评估为'a',因为61是十六进制值97,表示ASCII格式