Greetings to everybody,

I have recently started to solve my first Python problems but I came across to 
this:
Write a version of a palindrome recogniser that accepts a file name from the 
user, reads each line, and prints the line to the screen if it is a 
palindrome.(by http://www.ling.gu.se/~lager/python_exercises.html)

I think I coded it correctly but still I get no output. I do not have any 
errors I just do not get any output.

This is the code:

***
import is_palindrome

filename = raw_input('Enter a file: ') # A text file
f = open(filename)
while True:
        line = f.readline()
        if len(line) == 0:
                break
        elif is_palindrome.is_palindrome(line): 
                print line,
f.close()
***

I have coded the is_palindrome module before and it works very well.
Here is this module's code:

***
def reverse(text):
        return text[::-1]

def replace_all(text, dic):
        for i, j in dic.iteritems():
                text = text.replace(i, j)
        return text

def is_palindrome(text):
        return text == reverse(text)
        
points = {'.':'', ',':'', '!':'', ';':'', '?':'', '/':'', '\\':''}

something = raw_input('Enter text: ').lower().replace(' ', '')
replace = replace_all(something, points)
if is_palindrome(replace):
        print 'Yes, it is a palindrome:', reverse(replace)
else:
        print 'No, it is not a palindrome:', reverse(replace)
***

What should I do to output only the palindrome lines from the text file?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to