鱼C论坛

 找回密码
 立即注册
查看: 925|回复: 11

[已解决]Python中关于反斜杠的问题

[复制链接]
发表于 2020-4-26 13:04:36 | 显示全部楼层 |阅读模式

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

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

x
在做题目的时候发现一些问题。
如果字符结尾为‘\’,会报错,然后用了raw字符串依然会报错
>>> sp1 = r'~!@#$%^&*()_=-/,.?<>;:[]{}|\'
SyntaxError: EOL while scanning string literal
>>> sp1 = r'~!@#$%^&*()_=-/,.?<>;:[]{}|\'
SyntaxError: EOL while scanning string literal

于是我多加了一个‘\’转义,利用print()似乎没什么问题,但是在碰到索引sp1[-4:]的时候发现返回显示的是有两个‘\’的,那是不是转义字符其实是不算在字符串里的呀,因为len()显示好像是不算的,但为什么不算呢?转义字符不是字符串吗?
>>> sp1 = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
>>> print(sp1)
~!@#$%^&*()_=-/,.?<>;:[]{}|\
>>> sp1[-4:]
'{}|\\'
>>> len(sp1)
28
最佳答案
2020-4-26 14:43:08
小明你咋老重名 发表于 2020-4-26 13:47
那为什么 sp1 = '~!@#$%^&*()_=-/,.?;:[]{}|\\' 显示的只有28个字符啊,起到转义作用的‘\’Python是不是 ...

对,转义的反斜杠(\)会被忽略
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 13:05:59 | 显示全部楼层
本帖最后由 zltzlt 于 2020-4-26 13:13 编辑

\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:
>>> a = r"abcde""\\"    # 实际上相当于 r"abcde" + "\\"
>>> print(a)
abcde\
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 13:13:01 | 显示全部楼层
zltzlt 发表于 2020-4-26 13:05
\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:

实际上会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 13:13:21 | 显示全部楼层


论坛把其中一个反斜杠吃掉了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 13:14:53 | 显示全部楼层
zltzlt 发表于 2020-4-26 13:13
论坛把其中一个反斜杠吃掉了……

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

使用道具 举报

 楼主| 发表于 2020-4-26 13:47:49 | 显示全部楼层
zltzlt 发表于 2020-4-26 13:05
\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:

那为什么 sp1 = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\' 显示的只有28个字符啊,起到转义作用的‘\’Python是不是会自动忽略呢,然后在索引里面也是默认它不存在于字符串中?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 14:43:08 | 显示全部楼层    本楼为最佳答案   
小明你咋老重名 发表于 2020-4-26 13:47
那为什么 sp1 = '~!@#$%^&*()_=-/,.?;:[]{}|\\' 显示的只有28个字符啊,起到转义作用的‘\’Python是不是 ...

对,转义的反斜杠(\)会被忽略
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 14:44:31 | 显示全部楼层
zltzlt 发表于 2020-4-26 13:13
论坛把其中一个反斜杠吃掉了……

妙哉:
>>> "a""\"
'a\\'
>>> print(_)
a\
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 14:47:09 | 显示全部楼层
https://fishc.com.cn/thread-162591-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-26 17:00:06 | 显示全部楼层
_2_ 发表于 2020-4-26 14:43
对,转义的反斜杠(\)会被忽略

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

使用道具 举报

发表于 2020-4-26 17:17:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 20:43:21 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2020-4-26 17:17

反斜杠果然会被吞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 23:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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