我试图在python中打印文件中的回文单词(每行都是一个单词)。 多数民众赞成我到目前为止: 我必须在Unix中工作,所以我在文件palindrome.py中编写了我的脚本,如下所示:
#!/usr/bin/python
def isPalindrome(a):
if a == a[::-1]:
print a
with open ('fileName') as f:
for line in f:
isPalindrome(line)
当我运行文件时,它甚至不会打印任何内容 - 尽管我的文件中有回文词。我认为问题与我的函数调用有关,因为如果我isPalindrome(line)
而不是isPalindrome('aha')
,它将打印aha
。我尝试在for循环后打印每一行,但也可以。它会打印文件的所有行。所以line确实得到了不同的值,所以我猜可能会有一些与调用有关的内容,但我没有找到答案。
答案 0 :(得分:6)
您需要从行尾删除换行符。尝试拨打isPalindrome(line.strip())
。
答案 1 :(得分:1)
注意:file.readlines()
不会包装结束字符!!
所以,如果在你的文件中,你在一行中有aha
,那么该行将是aha\n
(使用新行char ...)...
我建议使用replace()
字符串方法。
您的代码:
#!/usr/bin/python
def isPalindrome(a):
if a == a[::-1]:
print a
with open ('fileName') as f:
for line in f:
isPalindrome(line.replace('\n', '').replace("\r", "")) # replace carriage return / line feed chars