r 原生字符串的理解
本帖最后由 hrp 于 2020-3-27 12:37 编辑# 为什么
print(r'\')
# 是不合法的
12:37添加:
一个可能的理解:因为在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义,所以反斜杠和紧接的一个单引号都被当成了字符串的一部分,导致整个字符串缺了一个回头的单引号,所以报错。 因为这就是Python的语法鸭
先判断一遍末尾有没有\,
再使用原始字符串转义
不用太在意这个 对比下不就 知道了
>>> print(r'\\')
\\
>>> print('\\')
\ qiuyouzhi 发表于 2020-3-27 12:14
因为这就是Python的语法鸭
先判断一遍末尾有没有\,
再使用原始字符串转义
有点不理解原始字符串,不是说在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义的么,为什么最后一个单引号被转义了(是被转义了才报错还是别的原因?{:10_245:}) ba21 发表于 2020-3-27 12:15
对比下不就 知道了
>>> print(r'\\')
\\
有点不理解原始字符串,不是说在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义的么,为什么最后一个单引号被转义了(是被转义了才报错还是别的原因?{:10_245:})
hrp 发表于 2020-3-27 12:24
有点不理解原始字符串,不是说在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义的么,为什么最 ...
会对引号转义的哦{:10_248:} 永恒的蓝色梦想 发表于 2020-3-27 12:26
会对引号转义的哦
想到一个可能的理解:因为在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义,所以反斜杠和紧接的一个单引号都被当成了字符串的一部分,导致整个字符串缺了一个回头的单引号,所以报错。
不知道是不是这样。 hrp 发表于 2020-3-27 12:24
有点不理解原始字符串,不是说在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义的么,为什么最 ...
既然是转义字符,后面总得再跟个字符吧。
就算是用r使其失去转义的作用,也得2个字符。这就是语法。 hrp 发表于 2020-3-27 12:39
想到一个可能的理解:因为在原始字符串中,不会对反斜杠和后面一个字符的组合进行转义,所以反斜杠和紧接 ...
是的
页:
[1]