鱼C论坛

 找回密码
 立即注册
查看: 2649|回复: 4

[已解决]新人请教print r问题

[复制链接]
发表于 2017-1-2 20:30:22 | 显示全部楼层 |阅读模式

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

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

x
看视频说   r'字符串'  里的字符串最后不能以\结尾。但是试了试下面这个程序,谁能给解释以下?
  1. Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
  2. Type "copyright", "credits" or "license()" for more information.
  3. >>> str=r'\\'
  4. >>> str
  5. '\\\\'
  6. >>> print(str)
  7. \\
  8. >>>
复制代码
最佳答案
2017-1-3 09:08:43
本帖最后由 ssaje 于 2017-1-3 15:59 编辑

我们知道在大部分的语言中独有"\"这个符号用来转义,这种符号出现在字符串中,就会与其后面的字串然后转换成其他的特殊字符。这个是很有必要的,因为,不是所有的字符都能够用键盘打出来。所以需要这样一个转义字符。

自然如果你的确要输入"\",你可以使用\\来做到!

进而,就出现了一个很麻烦的事情,就是输入路径的时候,要用很多的双反斜杠,来隔开各个目录。

于是,出现了自然字符串表示法
a=r"xuyong\dfsd"
这个时候系统不会对"\"进行解析。

但是,仍然有一个麻烦,那就是就算是自然字符都还是不能以\结尾。
a=r"xuyong\quan\"
这种语法是错误的。有人说这个是python的bug。我们暂且不管是不是。 不过还真像是一个bug,因为既然你规定r指定的字符串不对\解析。这里显然是\跟"一起解析了。
不过真的不行,我们只能用另外一个办法:
a="xuyong\\yong\\"
a=r"xuyong\quan" +"\\"
这两种方法都是可以的。前者就干脆不用自然字符串模式,后者,是避开这种模式bug!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-3 09:08:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 ssaje 于 2017-1-3 15:59 编辑

我们知道在大部分的语言中独有"\"这个符号用来转义,这种符号出现在字符串中,就会与其后面的字串然后转换成其他的特殊字符。这个是很有必要的,因为,不是所有的字符都能够用键盘打出来。所以需要这样一个转义字符。

自然如果你的确要输入"\",你可以使用\\来做到!

进而,就出现了一个很麻烦的事情,就是输入路径的时候,要用很多的双反斜杠,来隔开各个目录。

于是,出现了自然字符串表示法
a=r"xuyong\dfsd"
这个时候系统不会对"\"进行解析。

但是,仍然有一个麻烦,那就是就算是自然字符都还是不能以\结尾。
a=r"xuyong\quan\"
这种语法是错误的。有人说这个是python的bug。我们暂且不管是不是。 不过还真像是一个bug,因为既然你规定r指定的字符串不对\解析。这里显然是\跟"一起解析了。
不过真的不行,我们只能用另外一个办法:
a="xuyong\\yong\\"
a=r"xuyong\quan" +"\\"
这两种方法都是可以的。前者就干脆不用自然字符串模式,后者,是避开这种模式bug!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-3 14:54:14 | 显示全部楼层
ssaje 发表于 2017-1-3 09:08
视频里面讲了,在print(r'C:\Windows\Help\nvcpl\\')在最后要加\\双斜杠转义一下
str=r'\\'加了转 ...

这个结果
  1. >>> print(r'C:\Windows\Help\nvcpl\\')
  2. C:\Windows\Help\nvcpl\\
  3. >>>
复制代码

最后是\\ 不是\啊 所以\应该不是转置意思。
视频里应该是下面这种意思
  1. >>> print(r'C:\Windows\Help\nvcpl''\\')
  2. C:\Windows\Help\nvcpl\
  3. >>> print(r'C:\Windows\Help\nvcpl'+'\\')
  4. C:\Windows\Help\nvcpl\
  5. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-3 15:14:02 | 显示全部楼层
那就不知道了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-3 16:00:14 | 显示全部楼层
ssaje 发表于 2017-1-3 15:14
那就不知道了。。。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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