Python中关于反斜杠的问题
在做题目的时候发现一些问题。如果字符结尾为‘\’,会报错,然后用了raw字符串依然会报错
>>> sp1 = r'~!@#$%^&*()_=-/,.?<>;:[]{}|\'
SyntaxError: EOL while scanning string literal
>>> sp1 = r'~!@#$%^&*()_=-/,.?<>;:[]{}|\'
SyntaxError: EOL while scanning string literal
于是我多加了一个‘\’转义,利用print()似乎没什么问题,但是在碰到索引sp1[-4:]的时候发现返回显示的是有两个‘\’的,那是不是转义字符其实是不算在字符串里的呀,因为len()显示好像是不算的,但为什么不算呢?转义字符不是字符串吗?{:10_272:}
>>> sp1 = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
>>> print(sp1)
~!@#$%^&*()_=-/,.?<>;:[]{}|\
>>> sp1[-4:]
'{}|\\'
>>> len(sp1)
28 本帖最后由 zltzlt 于 2020-4-26 13:13 编辑
\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:
>>> a = r"abcde""\\\" # 实际上相当于 r"abcde" + "\\\"
>>> print(a)
abcde\ zltzlt 发表于 2020-4-26 13:05
\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:
实际上会报错 永恒的蓝色梦想 发表于 2020-4-26 13:13
实际上会报错
论坛把其中一个反斜杠吃掉了……{:10_262:} zltzlt 发表于 2020-4-26 13:13
论坛把其中一个反斜杠吃掉了……
{:10_256:} zltzlt 发表于 2020-4-26 13:05
\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:
那为什么 sp1 = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\' 显示的只有28个字符啊,起到转义作用的‘\’Python是不是会自动忽略呢,然后在索引里面也是默认它不存在于字符串中? 小明你咋老重名 发表于 2020-4-26 13:47
那为什么 sp1 = '~!@#$%^&*()_=-/,.?;:[]{}|\\' 显示的只有28个字符啊,起到转义作用的‘\’Python是不是 ...
对,转义的反斜杠(\)会被忽略 zltzlt 发表于 2020-4-26 13:13
论坛把其中一个反斜杠吃掉了……
妙哉:
>>> "a""\\"
'a\\'
>>> print(_)
a\
>>> https://fishc.com.cn/thread-162591-1-1.html _2_ 发表于 2020-4-26 14:43
对,转义的反斜杠(\)会被忽略
好的,谢谢你~ _2_ 发表于 2020-4-26 14:44
妙哉:
{:10_256:} zltzlt 发表于 2020-4-26 17:17
反斜杠果然会被吞{:10_256:}
页:
[1]