Palindrom olup olmadığının kontrolü

Merhaba oldukça basit bir sorunum var ama çözemedim izlediğim bir python videosunda kelimelerin terslerinin kendisiyle aynı olup olmadığının kontrolü yapılıyor bunu yaparken şu kodlar yazılmış.

def isPolindrome(string : str) -> bool:
     reverse = string[::-1]
     if string == reverse:
        return True
     return False

string = "radar"

if isPolindrome(string):
  print(f"{string} is a polindrome string)
else:
  print(f"{string} is not a polindrome string")

bende aynı programı kendim denemiştim benim kodlarım da şu şekilde

kelime = input("kelime girin: ")
baslangıc = len(kelime) -1

for index in kelime:
  kelime2= print(kelime[baslangıc], end='')
  baslangıc -= 1

if kelime is kelime2:
    print("  Polindromdur")
else:
    print("  polindrom değildir")

ancak hangi kelimeyi girersem gireyim sonuc her seferinde polindrom değildir oluyor bunun sebebi nedir nerede yanlış düşünüyorum

Kodlarınızı düzelttim.

kelime = input("kelime girin: ")
baslangıc = len(kelime) - 1

kelime2 = ""
for index in kelime:
  kelime2 += kelime[baslangıc]
  baslangıc -= 1
    
print(kelime2)
if kelime == kelime2:
    print("Polindromdur")
else:
    print("polindrom değildir")

Düzeltmeler:

  1. for döngüsü içinde kelime2'yi print fonksiyonuna eşitliyorsunuz. print fonksiyonundan dönen değer None'dır. Bu yüzden print kullanılmamalı burada.
  2. kelime2'yi for döngüsü içinde kelime[baslangıc] değişkenine eşitlemek yerine; döngüden önce, kelime2'yi boş bir karakter dizisi olarak tanımlayıp, döngü içinde kendisine elemanlar eklenmeli.
  3. kelime is kelime2 yerine kelime == kelime2'yi kullanmalısınız. Çünkü her ne kadar bu iki string aynı karakterlere sahip olsa da id değerleri farklı.
a = "radar"
b = a[::-1]
c = "radar"
print(id(a))
print(id(b))
print(id(c))

her seferinde uzun uzun açıklama yapıyorsunuz çok teşekkür ederim vakit ayırdığınız için gerçekten

Rica ederim, kolay gelsin.