我之前回答了一个问题,OP询问他如何从字符串中删除反斜杠.这是OP的字符串中反斜杠的样子:
"I don\'t know why I don\'t have the right answer"
Run Code Online (Sandbox Code Playgroud)
这是我的答案:
a = "I don\'t know why I don\'t have the right answer"
b = a.strip("/")
print b
Run Code Online (Sandbox Code Playgroud)
这从字符串中删除了反斜杠,但我的答案被低估了,我收到一条评论说" 我的答案有很多问题,很难计算 "我完全相信我的答案可能是错的,但我想要知道为什么我可以从中学习.但是,作者删除了这个问题,所以我无法回答那里的评论来提出这个问题.
aba*_*ert 21
a = "I don\'t know why I don\'t have the right answer"
b = a.strip("/")
print b
Run Code Online (Sandbox Code Playgroud)
/)和反斜杠(\)不是同一个字符.字符串中没有任何斜杠,所以你正在做的事情没有任何效果.a反正也没有反斜杠; \'在非原始字符串文字中只是一个'字符.strip只删除"前导和尾随字符".由于您尝试删除字符串中间的字符,因此无效.也许还有一些元问题:
无论如何,这并不算太多.
然后,评论并没有说它数不胜数,只是难以计数.有些人难以统计到四点三.即使是英国国王也必须被他们的神职人员提醒如何去做.
luk*_*k32 12
好吧,字符串中没有斜杠,也没有反斜杠.反斜杠转义',虽然它们没有,因为字符串是用分隔符"".
print("I don\'t know why I don\'t have the right answer")
print("I don't know why I don't have the right answer")
Run Code Online (Sandbox Code Playgroud)
生产:
I don't know why I don't have the right answer
I don't know why I don't have the right answer
Run Code Online (Sandbox Code Playgroud)
此外,您使用了错误的字符,strip只删除字符串末尾的字符:
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
>>> print("///I don't know why ///I don't have the right answer///".strip("/"))
I don't know why ///I don't have the right answer
Run Code Online (Sandbox Code Playgroud)
要将反斜杠放入字符串中,您也需要将其转义(或使用原始字符串文字).
>>> print("\\I don't know why ///I don't have the right answer\\".strip("/"))
\I don't know why ///I don't have the right answer\
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,即使反斜杠位于字符串的开头和结尾处,它们也不会被删除.
最后,回答原来的问题.一种方法是replace在字符串上使用方法:
>>> print("\\I don't know why \\\I don't have the right answer\\".replace("\\",""))
I don't know why I don't have the right answer
Run Code Online (Sandbox Code Playgroud)
另外,在你搞砸了自己的那个之后伸出一个好答案的道具=).
让我描述一下错误的全部内容
a = "I don\'t know why I don\'t have the right answer"
^ ^
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到两个反斜杠实际上是逃避了'具有保存意义的字符文字.
现在来看你的代码,到底是做str.strip什么的?来自文档:
返回删除了前导和尾随字符的字符串副本
因此,当您编写一段代码时,您不会删除反斜杠,而是删除字符串末尾的正斜杠(如果有的话)!
b = a.strip("/")
Run Code Online (Sandbox Code Playgroud)
但是,在显示时,您没有得到反斜杠.这是因为反斜杠仅用于内部python表示,当你打印它们时,它们将被解释为它们的转义字符,因此你不会看到反斜杠.您可以看到repr输出以获得更好的视图.
但需要注意的是,您不必使用反斜杠,因为您"用来表示字符串.所以
a = "I don't know why I don't have the right answer"
Run Code Online (Sandbox Code Playgroud)
足够了!
官方python 文档中涵盖了这个主题
Run Code Online (Sandbox Code Playgroud)>>> 'spam eggs' # single quotes 'spam eggs' >>> 'doesn\'t' # use \' to escape the single quote... "doesn't" >>> "doesn't" # ...or use double quotes instead "doesn't"
以上代码段直接取自文档.
| 归档时间: |
|
| 查看次数: |
15327 次 |
| 最近记录: |