nickgan....@windowslive.com wrote: > 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() The line includes the trailing newline character which breaks the symmetry: >>> "abba" == "abba"[::-1] True >>> "abba\n" == "abba\n"[::-1] False Use word = line.strip() to remove all leading and trailing whitespace. > if len(line) == 0: > break > elif is_palindrome.is_palindrome(line): > print line, > f.close() Note that python allows you to iterate over the lines of a file with for line in f: ... Combining these modifications: for line in f: word = line.strip() if is_palindrome.is_palindrome(word): print word -- http://mail.python.org/mailman/listinfo/python-list