003课后习题
>>> print(r"Bruce Eckel say:\"Life is short, let\'s learn Python.\"")Bruce Eckel say:\"Life is short, let\'s learn Python.\"
请问这到底这个 r 使后面转义了没有 为什么能正常运行
如果转义了 那么中间的双引号和前面的对应为什么不报错
如果没有 那么反斜杠\为什么还在
本帖最后由 qiuyouzhi 于 2020-4-5 20:02 编辑
1,没有,因为有r了
2,一共是4个双引号,两两对应,肯定不会报错呀 全部没有转义,除了最外层的双引号,全都原始输出了 原始字符串统统不转义,\" 表示这是转义后的双引号 qiuyouzhi 发表于 2020-4-5 19:41
1,没有,因为有r了
2,一共是4个双引号,两两对应,肯定不会报错呀
不应该使就近对应嘛 yqymzwq 发表于 2020-4-5 20:52
不应该使就近对应嘛
我不记得Python可以这样。
最外层的对应最外层,最内层的对应最内层 BngThea 发表于 2020-4-5 19:45
全部没有转义,除了最外层的双引号,全都原始输出了
那中间的双引号原始输出不会和最前面的双引号构成一对 从而导致错误么? zltzlt 发表于 2020-4-5 19:58
原始字符串统统不转义,\" 表示这是转义后的双引号
emmmmm 啥意思 那 \ 后的 " 到底被没被转义
yqymzwq 发表于 2020-4-5 20:53
那中间的双引号原始输出不会和最前面的双引号构成一对 从而导致错误么?
不会,因为反斜杠不能作为字符串的最后一个字符,除非转义 qiuyouzhi 发表于 2020-4-5 20:53
我不记得Python可以这样。
最外层的对应最外层,最内层的对应最内层
emmmm 应该是就近原则配对吧 yqymzwq 发表于 2020-4-5 21:00
emmmm 应该是就近原则配对吧
那是C语言。。。
再说了,真要是就近原则,肯定会报错
而这个没有 BngThea 发表于 2020-4-5 20:58
不会,因为反斜杠不能作为字符串的最后一个字符,除非转义
请问是不是这个意思 因为 \ 不能作为结尾 所以默认 \ 后面跟的 " 不是字符串的结尾 然后 因为第三个 ” 前面也有一个 \ 也默认 不是字符串的结尾 , 因为第四个 " 前面没有 \ 所以认为 第四个 “ 才是 与第一个 ” 对应的 “ 。而其中的 \"\" 其实都已经被转义了 变成了\\ \" \\ \"。
>>>print(r"Bruce Eckel say:\"Life is short, let\'s learn Python.\"")
Bruce Eckel say:\"Life is short, let\'s learn Python.\"
qiuyouzhi 发表于 2020-4-5 21:03
那是C语言。。。
再说了,真要是就近原则,肯定会报错
而这个没有
请问是不是这个意思 因为 \ 不能作为结尾 所以默认 \ 后面跟的 " 不是字符串的结尾 然后 因为第三个 ” 前面也有一个 \ 也默认 不是字符串的结尾 , 因为第四个 " 前面没有 \ 所以认为 第四个 “ 才是 与第一个 ” 对应的 “ 。而其中的 \"\" 其实都已经被转义了 变成了\\ \" \\ \"。
>>>print(r"Bruce Eckel say:\"Life is short, let\'s learn Python.\"")
Bruce Eckel say:\"Life is short, let\'s learn Python.\" 所有的\都被转义了。
>>> a = r"Bruce Eckel say:\"Life is short, let\'s learn Python.\""
>>> a
'Bruce Eckel say:\\"Life is short, let\\\'s learn Python.\\"' qiuyouzhi 发表于 2020-4-5 21:26
所有的\都被转义了。
你这个肯定不是python 因为这样python会报错 这个语言的 “ 应该就是对应的是你说的外层对外层 python是就近对应 就会报错 qiuyouzhi 发表于 2020-4-5 21:26
所有的\都被转义了。
>>> a = r"Bruce Eckel say:\"Life is short, let\'s learn Python.\""
>>> a
'Bruce Eckel say:\\"Life is short, let\\\'s learn Python.\\"' yqymzwq 发表于 2020-4-5 21:31
>>> a = r"Bruce Eckel say:\"Life is short, let\'s learn Python.\""
>>> a
'Bruce Eckel say:\\"Lif ...
可为什么 " 前面只有两个 \\ ??? qiuyouzhi 发表于 2020-4-5 21:26
所有的\都被转义了。
可为什么 " 前面只有两个 \\ ??? yqymzwq 发表于 2020-4-5 21:19
请问是不是这个意思 因为 \ 不能作为结尾 所以默认 \ 后面跟的 " 不是字符串的结尾 然后 因为第三个 ”...
对的 qiuyouzhi 发表于 2020-4-5 21:03
那是C语言。。。
再说了,真要是就近原则,肯定会报错
而这个没有
python是就近匹配原则哦,只不过中间的双引号被转义了
页:
[1]
2