【发布时间】:2011-05-12 18:13:30
【问题描述】:
我一直在研究 Python 2.7 中的字谜求解器,但遇到了一个我无法找到解释的好奇心。该程序从一个文件中读取,该文件包含一个字谜列表,格式如下:
# anagram
# anagram
# anagram
.
.
.
etc
将其直接读入字符串,Python 显然会将所有内容都输出,所以我正在使用 replace() 试图找到一种方法来去除哈希字符。正在尝试...
string = file.read().replace('#', '')
...会产生一个空字符串。我尝试在哈希前面使用反斜杠,但弄错了一个正斜杠并打错了,这给了我结果:
string = file.read().replace('/#', '')
string = '#\tanagram\n#\tanagram\n#\tanagram'
当时删除不必要的字符是一件轻而易举的事,程序运行良好。但是,我不满足于使用我不完全理解的代码行。我没有太多运气找到任何解释/使我们成为这样的东西的文档或代码,所以我要么在寻找错误的地方,要么在寻找错误的东西。
谁能解释它为什么会这样?
【问题讨论】:
-
在您的第二个示例中,
replace只是不替换任何内容并返回原始字符串,因为在您的文件中您没有/#序列。 -
# 仅在源代码中对 Python 是特殊的,而不是在从文件读取的字符串中。