python扫描字符串文本时下线_为什么Python的原始字符串文字不能以单个反斜杠结尾?...

Technically, any odd number of backslashes, as described in the documentation.

>>> r'\'

File "", line 1

r'\'

^

SyntaxError: EOL while scanning string literal

>>> r'\\'

'\\\\'

>>> r'\\\'

File "", line 1

r'\\\'

^

SyntaxError: EOL while scanning string literal

It seems like the parser could just treat backslashes in raw strings as regular characters (isn't that what raw strings are all about?), but I'm probably missing something obvious.

解决方案

The reason is explained in the part of that section which I highlighted in bold:

String quotes can be escaped with a

backslash, but the backslash remains

in the string; for example, r"\"" is a

valid string literal consisting of two

characters: a backslash and a double

quote; r"\" is not a valid string

literal (even a raw string cannot end

in an odd number of backslashes).

Specifically, a raw string cannot end

in a single backslash (since the

backslash would escape the following

quote character). Note also that a

single backslash followed by a newline

is interpreted as those two characters

as part of the string, not as a line

continuation.

So raw strings are not 100% raw, there is still some rudimentary backslash-processing.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值