Вызов функции не работает python

Im пытается распечатать слова палиндрома в файле (где каждая строка – это слово) в 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, но это работает. Он печатает все строки файла. Таким образом, линия получает разные значения, поэтому я предполагаю, что может быть что-то связанное с вызовом, но я не знаю, что.

Вам нужно снять строки с конца строки. Попробуйте вызвать как isPalindrome(line.strip()) .

Внимание: file.readlines() не file.readlines() конечной строки!

так что если в вашем файле у вас есть aha в одной строке, строка будет aha\n (с новой строкой char …) …

Я предлагаю использовать метод replace() string.

Ваш код:

 #!/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