Как сделать правильную проверку на палиндром?
# phrase = input('Введите фразу: ')
phrase = 'А роза упала на лапу Азора'
phrase = list(filter(str.isalpha, phrase.casefold()))
if phrase == phrase[::-1]:
    print('Палиндром')
else:
    print('Не палиндром')
А проблема у вас прежде всего здесь:for item in text:
  if item == ' ':
    del item
1) Нельзя удалять что-то из набора, по которому итерируетесь;
2) Строка является неизменяемым объектом;
3) В вашем исполнении это в принципе не работает.
Та другого способа вроде как и нет. Ну только если сократить всё это как-то так:# Проверка каждого слова из предложения на палиндром
def palindrome_sentence(text):
    for word in ["".join(filter(str.isalpha, w)) for w in text.split(" ")]:
        print("palindrome") if word.lower() == word.lower()[::-1] else print("not palindrome")


# Объединение строки в одно слово и его проверка
def palindrome_word(text):
    word = "".join(["".join(filter(str.isalpha, w)) for w in text])
    print("palindrome") if word.lower() == word.lower()[::-1] else print("not palindrome")


text = input("text: \n")
palindrome_word(text)
А то чет нагородили много лишнего.