Не получается определить палиндром

Есть код, в котором реализована функция, выясняющая, является ли слово палиндромом

 def polindrom(str): 
     f=0
     k = len(str)
     i = 0
     for i in range(len(str)):
       if(str[i] != str[k - 1]): 
         f = 1
       --k
     return f 


word1 = input("Введите первое слово: ")
word2 = input("Введите второе слово: ")
word3 = input("Введите третье слово: ")
print(polindrom(word1))
if(polindrom(word1)):
     print("Первое слово является палиндромом")
else:
     print("Первое слово не является палиндромом")
      
if(polindrom(word2)):
       print("Второе слово является палиндромом")
else:
      print("Второе слово не является палиндромом")
      
if(polindrom(word3)):
      print("Третье слово является палиндромом")
else:
       print("Третье слово не является палиндромом")
    

Но, почему-то, на выводе всегда выводит "не является палиндромом" для каждого слова, кроме пробела. Помогите, пожалуйста, найти ошибку


Ответы (2 шт):

Автор решения: Сергей Солдатов

Если входные данные не большого размера то можно делать след. образом

def is_palindrom(x: list):
    return x == x[::-1]
→ Ссылка
Автор решения: TRAKTOR

В Python, кроме индексов, существуют ещё и срезы.

item[START:STOP:STEP] - берёт срез от номера START, до STOP (не включая его), с шагом STEP. По умолчанию START = 0, STOP = длине объекта, STEP = 1. Соответственно, какие-нибудь (а возможно, и все) параметры могут быть опущены.

>>>
>>> a = [1, 3, 8, 7]
>>> a[:]
[1, 3, 8, 7]
>>> a[1:]
[3, 8, 7]
>>> a[:3]
[1, 3, 8]
>>> a[::2]
[1, 8]

Также все эти параметры могут быть и отрицательными:

>>> a = [1, 3, 8, 7]
>>> a[::-1]
[7, 8, 3, 1]
>>> a[:-2]
[1, 3]
>>> a[-2::-1]
[8, 3, 1]
>>> a[1:4:-1]
[]
→ Ссылка