鱼C论坛

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

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

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

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

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

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


于是我多加了一个‘\’转义,利用print()似乎没什么问题,但是在碰到索引sp1[-4:]的时候发现返回显示的是有两个‘\’的,那是不是转义字符其实是不算在字符串里的呀,因为len()显示好像是不算的,但为什么不算呢?转义字符不是字符串吗?

  1. >>> sp1 = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
  2. >>> print(sp1)
  3. ~!@#$%^&*()_=-/,.?<>;:[]{}|\
  4. >>> sp1[-4:]
  5. '{}|\\'
  6. >>> len(sp1)
  7. 28
复制代码
最佳答案
2020-4-26 14:43:08
小明你咋老重名 发表于 2020-4-26 13:47
那为什么 sp1 = '~!@#$%^&*()_=-/,.?;:[]{}|\\' 显示的只有28个字符啊,起到转义作用的‘\’Python是不是 ...

对,转义的反斜杠(\)会被忽略
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

\ 不能放在原始字符串末尾,如果偏要这样做可以这样灵活处理:

  1. >>> a = r"abcde""\\"    # 实际上相当于 r"abcde" + "\\"
  2. >>> print(a)
  3. abcde\
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

实际上会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


论坛把其中一个反斜杠吃掉了……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

对,转义的反斜杠(\)会被忽略
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

妙哉:
  1. >>> "a""\"
  2. 'a\\'
  3. >>> print(_)
  4. a\
  5. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 14:47:09 | 显示全部楼层
  1. https://fishc.com.cn/thread-162591-1-1.html
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的,谢谢你~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 17:17:02 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

反斜杠果然会被吞
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 04:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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