鱼C论坛

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

[已解决]反斜杠(\)与原始字符串的问题

[复制链接]
发表于 2017-3-29 15:30:16 | 显示全部楼层 |阅读模式

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

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

x
我对反斜杠(\)的理解是这样的:
在字符串中出现了单引号或双引号时,可以用反斜杠(\)来转义。

但对下面的反斜杠(\)和原始字符串不太理解,有没有大神可以指点一下?

>>> X = "C:\Program Files\Common Files"
>>> X
'C:\\Program Files\\Common Files'   # # 为什么这里会出现2个双反斜杠(\)?
>>> print(X)
C:\Program Files\Common Files

>>> Y = r"C:\Program Files\Common Files"
>>> Y
'C:\\Program Files\\Common Files'  # # 为什么这里会出现2个双反斜杠(\)?
>>> print(Y)
C:\Program Files\Common Files     # # 为什么打印的内容只取r后面的字符串?

>>> Z = r"C:\\Program Files\Common Files"
>>> Z
'C:\\\\Program Files\\Common Files'       # # 为什么这里会出现4个和2个反斜杠(\)?
>>> print(Z)
C:\\Program Files\Common Files
最佳答案
2017-3-29 16:04:21
在字符串前面加个r是防止转义,也就是在字符串中的'\' 前面加个 '\'
这样在调用print的时候就会原样输出\,不然可能会把后面的字符转义

但是我实验发现,当\后面跟的是大写的时候,会自动转义,比如:
  1. >>> '\read\read'
  2. '\read\read'
  3. >>> c = '\read\read'
  4. >>> print(c)

  5. ead
  6. ead
  7. >>> c
  8. '\read\read'
  9. >>> c = '\Read\Read'
  10. >>> c
  11. '\\Read\\Read'
  12. >>> print(c)
  13. \Read\Read
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-29 15:50:55 | 显示全部楼层
\\两个反斜杠代码转义反斜杠本身,所以\\实际上就是代表“\”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-3-29 16:04:21 | 显示全部楼层    本楼为最佳答案   
在字符串前面加个r是防止转义,也就是在字符串中的'\' 前面加个 '\'
这样在调用print的时候就会原样输出\,不然可能会把后面的字符转义

但是我实验发现,当\后面跟的是大写的时候,会自动转义,比如:
  1. >>> '\read\read'
  2. '\read\read'
  3. >>> c = '\read\read'
  4. >>> print(c)

  5. ead
  6. ead
  7. >>> c
  8. '\read\read'
  9. >>> c = '\Read\Read'
  10. >>> c
  11. '\\Read\\Read'
  12. >>> print(c)
  13. \Read\Read
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-3-30 11:08:50 | 显示全部楼层
刚看了论坛各位对转义符的解释,现在总结如下:

1、反斜杠(\)主要用作转义,适用于字符串中出现字符串的情况:如
  1. >>> 'let\'s go'
  2. "let's go"
  3. >>> 'I \'love\' fishc'
  4. "I 'love' fishc"
复制代码
  
# \ 用在单引号或者双引号左边

2、反斜杠(\)只是单纯表示反斜杠 \ 自身的意思:如
  1. >>> Z = "C:\Program Files\Common Files"
  2. >>> Z
  3. 'C:\\Program Files\\Common Files'
复制代码


3、原始字符串中的反斜杠(\)就是表示反斜杠 \ 自身的意思:如
  1. >>> Z = r"C:\Program Files\Common Files"
  2. >>> Z
  3. 'C:\\Program Files\\Common Files'
  4. >>> Z = r"C:\\Program Files\Common Files"
  5. >>> Z
  6. 'C:\\\\Program Files\\Common Files'
  7. >>> Z = r"C:\\\Program Files\Common Files"
  8. >>> Z
  9. 'C:\\\\\\Program Files\\Common Files'
复制代码

# 原始字符串中出现了n个反斜杠,程序就会自动在反斜杠前面再加n个反斜杠,即最后出来的就是2n个反斜杠
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 22:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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