|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
看视频说 r'字符串' 里的字符串最后不能以\结尾。但是试了试下面这个程序,谁能给解释以下?
- Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
- Type "copyright", "credits" or "license()" for more information.
- >>> str=r'\\'
- >>> str
- '\\\\'
- >>> print(str)
- \\
- >>>
复制代码
本帖最后由 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!
|
|