Ash*_*ary 8 python string rawstring
我在这里很困惑,即使原始字符串转换为每个\,\\但\最后它出现时会引发错误.
>>> r'so\m\e \te\xt'
'so\\m\\e \\te\\xt'
>>> r'so\m\e \te\xt\'
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)
更新:
Eri*_*ric 10
你仍然需要\转义'或"原始字符串,因为否则python解释器不知道字符串停止的位置.在你的例子中,你正在逃避结束'.
除此以外:
r'it wouldn\'t be possible to store this string'
r'since it'd produce a syntax error without the escape'
Run Code Online (Sandbox Code Playgroud)
看一下语法高亮,看看我的意思.
原始字符串不能以单个反斜杠结尾,因为解析器的工作原理(尽管没有实际的转义).解决方法是在之后添加反斜杠作为非原始字符串文字:
>>> print(r'foo\')
File "<stdin>", line 1
print(r'foo\')
^
SyntaxError: EOL while scanning string literal
>>> print(r'foo''\\')
foo\
Run Code Online (Sandbox Code Playgroud)
不漂亮,但它的工作原理.您可以添加加号以使其更清楚发生的事情,但没有必要:
>>> print(r'foo' + '\\')
foo\
Run Code Online (Sandbox Code Playgroud)
Python 字符串的处理分两步:
首先,分词器寻找收盘价。当它执行此操作时,它会识别反斜杠,但不会解释它们 - 它只是查找后跟结束引号的字符串元素序列,其中“字符串元素”是(不是反斜杠、结束引号或换行符 - 除了三引号中允许换行符)或(反斜杠,后跟任何单个字符)。
然后根据字符串的类型来解释字符串的内容(处理反斜杠转义)。r字符串文字之前的标志仅影响此步骤。
| 归档时间: |
|
| 查看次数: |
3424 次 |
| 最近记录: |