Я пытаюсь найти самый длинный палиндром в заданной строке. Я столкнулся со странным поведением оператора if
. размещая здесь оба кода, в 1-м коде, когда я пытался отладить, все работает нормально до оператора if, но даже после получения True
он не получает доступ к следующему коду внутри.
Тогда как во втором коде я сохранил возвращаемое значение функции палиндрома в логической переменной var, а затем использовал его в операторе if. теперь он обращается к внутреннему коду.
Думаю, мне не хватает чего-то очень важного в python. Подскажите, пожалуйста, почему это происходит?
Код 1:
def palindrom(temp):
if(temp==temp[::-1]):
return True
else:
return False
word=input("enter the string to check ")
maxx="" #to store the longest palindrome till now
l=len(word)
for i in range(0,l):
# if(len(maxx)>l-i): ## to check if remaining string is smaller than maxx
# print(maxx)
# break
temp=word[i] ## testing by adding one letter at a time
for j in range(i+1,l):
temp=temp+word[j]
if(temp is palindrom(temp) and len(temp)>len(maxx) ):
maxx=temp ##updating the maxx
print(maxx)
Код 2:
def palindrom(temp):
if(temp==temp[::-1]):
return True
else:
return False
word=input("enter the string to check ")
maxx=""
l=len(word)
for i in range(0,l):
# if(len(maxx)>l-i): ## to check if remaining string is smaller than maxx
# print(maxx)
# break
temp=word[i]
for j in range(i+1,l):
temp=temp+word[j]
bul=palindrom(temp) ##storting the return value of palindrome() in a boolean.
if(bul and len(temp)>len(maxx)):
maxx=temp
print(maxx)