鱼C论坛

 找回密码
 立即注册
查看: 1071|回复: 33

[已解决]003课后习题

[复制链接]
发表于 2020-4-5 19:38:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> print(r"Bruce Eckel say:\"Life is short, let\'s learn Python.\"")
Bruce Eckel say:\"Life is short, let\'s learn Python.\"

请问这到底这个 r 使后面转义了没有 为什么能正常运行
如果转义了 那么中间的双引号和前面的对应为什么不报错
如果没有 那么反斜杠\为什么还在
最佳答案
2020-4-6 17:19:19
yqymzwq 发表于 2020-4-6 17:09
emmm 我的意思是中间的引号没有被转义。。 因为被转义的话他的前面应该有 \\\ 而不是两个

是不是因为p ...


被转义了,但是返回的字符串是用单引号,所以说双引号前面不需要加\
但是你的字符串是用双引号引起来的,所以双引号前必须要加\,否则字符串就结束了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-5 19:41:38 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-4-5 20:02 编辑

1,没有,因为有r了
2,一共是4个双引号,两两对应,肯定不会报错呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 19:45:13 | 显示全部楼层
全部没有转义,除了最外层的双引号,全都原始输出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-5 19:58:21 | 显示全部楼层
原始字符串统统不转义,\" 表示这是转义后的双引号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 20:52:29 | 显示全部楼层
qiuyouzhi 发表于 2020-4-5 19:41
1,没有,因为有r了
2,一共是4个双引号,两两对应,肯定不会报错呀

不应该使就近对应嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 20:53:28 | 显示全部楼层
yqymzwq 发表于 2020-4-5 20:52
不应该使就近对应嘛

我不记得Python可以这样。
最外层的对应最外层,最内层的对应最内层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 20:53:51 | 显示全部楼层
BngThea 发表于 2020-4-5 19:45
全部没有转义,除了最外层的双引号,全都原始输出了

那中间的双引号原始输出不会和最前面的双引号构成一对 从而导致错误么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 20:55:04 | 显示全部楼层
zltzlt 发表于 2020-4-5 19:58
原始字符串统统不转义,\" 表示这是转义后的双引号

emmmmm 啥意思 那 \ 后的 " 到底被没被转义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 20:58:13 | 显示全部楼层
yqymzwq 发表于 2020-4-5 20:53
那中间的双引号原始输出不会和最前面的双引号构成一对 从而导致错误么?

不会,因为反斜杠不能作为字符串的最后一个字符,除非转义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:00:21 | 显示全部楼层
qiuyouzhi 发表于 2020-4-5 20:53
我不记得Python可以这样。
最外层的对应最外层,最内层的对应最内层

emmmm 应该是就近原则配对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 21:03:40 | 显示全部楼层
yqymzwq 发表于 2020-4-5 21:00
emmmm 应该是就近原则配对吧

那是C语言。。。
再说了,真要是就近原则,肯定会报错
而这个没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:19:58 | 显示全部楼层
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.\"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:21:20 | 显示全部楼层
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.\"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 21:26:18 | 显示全部楼层
所有的\都被转义了。
>>> a = r"Bruce Eckel say:"Life is short, let\'s learn Python.""
>>> a
'Bruce Eckel say:\"Life is short, let\\\'s learn Python.\"'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:30:06 | 显示全部楼层
qiuyouzhi 发表于 2020-4-5 21:26
所有的\都被转义了。

你这个肯定不是python 因为这样python会报错 这个语言的 “ 应该就是对应的是你说的外层对外层 python是就近对应 就会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:31:13 | 显示全部楼层
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.\\"'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:33:33 | 显示全部楼层
yqymzwq 发表于 2020-4-5 21:31
>>> a = r"Bruce Eckel say:\"Life is short, let\'s learn Python.\""
>>> a
'Bruce Eckel say:\\"Lif ...

可为什么 " 前面只有两个 \\ ???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 21:34:13 | 显示全部楼层
qiuyouzhi 发表于 2020-4-5 21:26
所有的\都被转义了。

可为什么 " 前面只有两个 \\ ???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-6 09:02:29 | 显示全部楼层
yqymzwq 发表于 2020-4-5 21:19
请问是不是这个意思 因为 \ 不能作为结尾 所以默认 \ 后面跟的 " 不是字符串的结尾 然后 因为第三个 ”  ...

对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-6 10:49:26 | 显示全部楼层
qiuyouzhi 发表于 2020-4-5 21:03
那是C语言。。。
再说了,真要是就近原则,肯定会报错
而这个没有

python是就近匹配原则哦,只不过中间的双引号被转义了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 01:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表