I want to create a code that will return \"true\" (if I type in a palindrome regardless of case or if there are special characters in it), and \"false\" otherwise. The code I ha
You need to filter before testing then:
letters = [c.casefold() for c in my_str if c.isalpha()]
would pick out only the letters and lowercase them, after which you can test of those letters form a palindrome:
return letters == letters[::-1]
This works because str.isalpha() returns True only for letters.
Combined into your function:
def is_palindrome(my_str):
letters = [c.casefold() for c in my_str if c.isalpha()]
return letters == letters[::-1]
Demo:
>>> def is_palindrome(my_str):
... letters = [c.casefold() for c in my_str if c.isalpha()]
... return letters == letters[::-1]
...
>>> is_palindrome("Rats live on no evil star")
True
>>> is_palindrome("Hello World!")
False
>>> is_palindrome("Madam, I'm Adam")
True