原因:python字符串赋值意外地将'\ b'更改为'\ x08'而将'\ a'更改为'\ x07',为什么Python会这样做?

T.C*_*T.C 12 python string

有两个答案和一些评论,提到了另一个问题,但都没有提供REASON,为什么Python做了这个改变?例如'/ b'是'/ x08'只是结果,但为什么呢?干杯.

我尝试将此路径"F:\ big data\Python_coding\diveintopython-5.4\py"添加到sys.path中,因此,可以直接导入其下的代码.

使用后: sys.path.append('F:\big data\Python_coding\diveintopython-5.4\py')

我发现我在sys.path中有这条路径:'F:\ x08ig data\Python_coding\diveintopython-5.4\py'

然后我使用以下代码进行测试:mypath1='F:\big data\bython_coding\aiveintopython-5.4\ry'

mypath1现在是: 'F:\x08ig data\x08ython_coding\x07iveintopython-5.4\ry'

所有'\ b'变为'\ x08','\ a'变为'\ x07'

我搜索了一会儿,但仍然找不到原因,请你检查一下,任何反馈或帮助都会被挪用.非常感谢.

Mat*_*vor 12

你的字符串被转义了.查看有关字符串文字的文档:

反斜杠()字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引号字符.字符串文字可以选择以字母r' orR' 为前缀; 这样的字符串称为原始字符串,并对反斜杠转义序列使用不同的规则.

这是一个可以追溯到60年代初的历史用法.它允许您输入您无法从标准键盘输入的字符.例如,如果您输入Python解释器:

print "\xDC"
Run Code Online (Sandbox Code Playgroud)

......你会得到的Ü.在你的情况下,你有\b- 代表退格 - Python在\xhh表单中显示,其中hh是08的十六进制值.\a是ASCII铃声的转义序列:尝试print "\a"打开你的声音,你应该听到一声嘟嘟声.


fal*_*tru 7

逃逸序列\a,\b等同于\x07,\x08.

>>> '\a'
'\x07'
>>> '\b'
'\x08'
Run Code Online (Sandbox Code Playgroud)

你应该逃避\自己来代表反斜杠:

>>> '\\a'
'\\a'
>>> '\\b'
'\\b'
Run Code Online (Sandbox Code Playgroud)

或使用原始字符串文字:

>>> r'\a'
'\\a'
>>> r'\b'
'\\b'
Run Code Online (Sandbox Code Playgroud)