鱼C论坛

 找回密码
 立即注册
查看: 2305|回复: 3

萌新——反斜杠的作为转义字符的几点疑惑

[复制链接]
发表于 2019-9-17 15:22:36 | 显示全部楼层 |阅读模式

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

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

x
>>> print(r'ABCD\\')
ABCD\\
>>> r'ABCD\\'
'ABCD\\\\'

有几点疑惑:
1、有print()和没有print()有什么区别,从结果上来看,有print()的话输出的结果是引号中的内容,没有print()的话输出的结果是括号里的内容
2、print(r'ABCD\\')为什么以偶数个反斜杠结尾就不报错,是因为第一个反斜杠转义了第二个反斜杠,导致最后的单引号没有被最后一个反斜杠转义吗,但是有r存在的话转义字符不应该是没有作用的吗
3、为什么输入r'ABCD\\'出来的结果会有4个反斜杠
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-17 16:31:33 | 显示全部楼层

先来说说r'ABCD\\'为什么结果是'ABCD\\\\',这个r相当于一个操作,它意思是它把后面的字符串定义为原生字符串,从而返回一个对应的普通字符串。这里一个\对应的字符串是\\,所以\\得到了\\\\。

print(r'ABCD\\')如果偶数个\结尾不会报错。确实是这样的,但是原因在于结尾,比如print(r'ABCD\\\a')就不会报错。原因是print最后不能单独一个\,就得成双或者没有\。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-17 18:42:07 | 显示全部楼层
1. 有 print() 表示打印括号里的内容,没有 print() 表示打印内容和引号。
2. 续行符反斜杠 \ 单个放在字符串末尾无法取消转义。
3. 直接输入 r'ABCD\\' 会得出一个普通字符串 'ABCD\\\\',但是 print() 会输出转义后的字符串 'ABCD\\'。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-28 19:25:13 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-19 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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