Python中的回文函数
嘿,我的作业是:
回文是指一个词从前往后读和从后往前读是一样的,比如说
“doggod”就是一个回文。我的任务是逐行扫描一个文件,找出里面的回文,并
返回一个包含找到的回文的列表。
这是我目前写的代码:
def find_palidrome(word):
if len(word) < 1:
return True
else:
if word[0] == word[-1]:
return find_palidrome(word[1:-1])
else:
return False
def fileInput(alice.txt):
f = open(alice.txt,'r')
line = f.readline().strip()
while line != '':
if(find_palidrome(line)):
print(line)
else:
print("No palindromes found")
line = f.readline().strip()
file.close()
但是它一直不工作,老是说有语法错误,我不知道哪里出问题了。
有人能帮帮我吗!!谢谢!
1 个回答
1
这是一个更简单的方法来查找一个单词是否是回文:
def is_palindrome(word):
return word == word[::-1]
然后读取文件的方法是:
def check_file(file_name):
with open(file_name, 'r') as f:
for line in f:
if is_palindrome(line):
print(line)
else:
print("No palindromes found")
if __name__ == '__main__':
f_name = input('Enter a file path')
check_file(f_name)
正如其他人所指出的,问题在于没有把文件名作为字符串传入。在我发布的代码中,文件名默认是通过 input()
函数以字符串的形式输入的。把所有内容放在 if __name__ == '__main__'
这个块里,可以让你在不运行整个脚本的情况下,把这些函数导入到其他程序中。