Python - 文件行 - 回文
Python - file lines - pallindrome
我一直在做 python 学习任务,我遇到了这个任务,我必须阅读一个包含几个单词的文件,如果一行是回文(倒写时相同:lol > lol)
所以我尝试了这段代码,但它没有在终端上打印任何内容:
with open("words.txt") as f:
for line in f:
if line == line[::-1]:
print line
但是如果我这样打印,没有 if 条件,它会打印出这些词:
with open("words.txt") as f:
for line in f:
print line
我想知道为什么它不打印我在文件中写的字:
sefes
kurwa
rawuk
lol
bollob
每个 line
的最后一个字符是换行符(“\n”)。在检查该行是否为回文之前,您需要去除尾随换行符 ("foo\n".strip()
)。
这是因为这些行的末尾包含 "\n"
。 "\n"
表示换行。因此 none 根据 python.
是回文
您可以先通过以下方式去除 "\n"
:
with open("words.txt") as f:
for line in f:
if line.strip() == line.strip()[::-1]:
print line
当你从这样的文件中读取一行时,你也会得到换行符。因此,例如,您看到的是 'sefes\n'
,倒过来就是 '\nsefes'
。这两条线当然不相等。解决这个问题的一种方法是使用 rstrip
删除这些换行符:
with open("words.txt") as f:
for line in f:
line = line.rstrip()
if line == line[::-1]:
print line
我一直在做 python 学习任务,我遇到了这个任务,我必须阅读一个包含几个单词的文件,如果一行是回文(倒写时相同:lol > lol) 所以我尝试了这段代码,但它没有在终端上打印任何内容:
with open("words.txt") as f:
for line in f:
if line == line[::-1]:
print line
但是如果我这样打印,没有 if 条件,它会打印出这些词:
with open("words.txt") as f:
for line in f:
print line
我想知道为什么它不打印我在文件中写的字:
sefes
kurwa
rawuk
lol
bollob
每个 line
的最后一个字符是换行符(“\n”)。在检查该行是否为回文之前,您需要去除尾随换行符 ("foo\n".strip()
)。
这是因为这些行的末尾包含 "\n"
。 "\n"
表示换行。因此 none 根据 python.
您可以先通过以下方式去除 "\n"
:
with open("words.txt") as f:
for line in f:
if line.strip() == line.strip()[::-1]:
print line
当你从这样的文件中读取一行时,你也会得到换行符。因此,例如,您看到的是 'sefes\n'
,倒过来就是 '\nsefes'
。这两条线当然不相等。解决这个问题的一种方法是使用 rstrip
删除这些换行符:
with open("words.txt") as f:
for line in f:
line = line.rstrip()
if line == line[::-1]:
print line