US Trends

what is palindrome in python

A palindrome in Python is a string, number, or phrase that reads the same forward and backward, like "madam", "racecar", or 121.

What is a palindrome in Python?

In Python, when people say “palindrome in Python,” they usually mean:

“How do I write Python code to check whether a string or number is a palindrome?”

So the core idea is:

  • Take an input (string or number).
  • Read it normally.
  • Read it in reverse.
  • If both are the same, it is a palindrome; otherwise, it is not.

Typical examples:

  • "madam" → palindrome.
  • "racecar" → palindrome.
  • "hello" → not a palindrome.
  • 121 → palindrome as a number or as the string "121".

Basic Python ways to check a palindrome

Here are the most common patterns you’ll see being taught in 2024–2025 tutorials.

1. Using string slicing [::-1] (most Pythonic)

python

def is_palindrome(s: str) -> bool:
    return s == s[::-1]

print(is_palindrome("racecar"))  # True
print(is_palindrome("hello"))    # False

This uses Python’s slice syntax s[::-1] to create a reversed copy of the string and compares it to the original.

2. Using a loop and two pointers

python

def is_palindrome_two_pointers(s: str) -> bool:
    left, right = 0, len(s) - 1
    while left < right:
        if s[left] != s[right]:
            return False
        left += 1
        right -= 1
    return True

print(is_palindrome_two_pointers("madam"))  # True
print(is_palindrome_two_pointers("python")) # False

This compares the first character with the last, the second with the second last, and so on until the middle.

3. Using recursion (more “theory” than practical)

python

def is_palindrome_recursive(s: str) -> bool:
    if len(s) < 2:
        return True
    if s[0] != s[-1]:
        return False
    return is_palindrome_recursive(s[1:-1])

print(is_palindrome_recursive("level")) # True

This function calls itself on the substring without the first and last characters until the string length becomes 0 or 1.

4. Ignoring spaces, case, and punctuation

For phrases like "A man, a plan, a canal: Panama":

python

def is_palindrome_phrase(text: str) -> bool:
    cleaned = ''.join(ch.lower() for ch in text if ch.isalnum())
    return cleaned == cleaned[::-1]

print(is_palindrome_phrase("A man, a plan, a canal: Panama"))  # True
print(is_palindrome_phrase("This is not a palindrome"))        # False

This cleans the string first (keeps only letters/digits, lowercases), then checks the palindrome logic.

Quick HTML table of core ideas

[3][5] [1][5][3] [10][1][3] [6][4]
Method Idea Code pattern When to use
Slicing Compare string to its reverse.s == s[::-1] Fastest to write, very “Pythonic”.
Two pointers Compare characters from both ends moving inward.while left < right: ... Good for teaching algorithms, interviews.
Recursion Check ends, then recurse on the middle.return f(s[1:-1]) For understanding recursion; not required in practice.
Cleaning phrases Remove non‑alphanumerics, normalize case.''.join(ch.lower() for ch in s if ch.isalnum()) For sentences like “A man, a plan, a canal: Panama”.

Mini example “story”

Imagine you’re building a tiny “word game” in Python where users type a word and you tell them if it’s “magical” (a palindrome):

python

def is_palindrome(s: str) -> bool:
    return s == s[::-1]

word = input("Type a word and I'll tell you if it's magical: ")
if is_palindrome(word):
    print("✨ It's a palindrome! ✨")
else:
    print("No magic this time.")

Under the hood, the only “magic” is that line comparing the word to its reversed version.

TL;DR

  • A palindrome in Python is just a value that reads the same forward and backward.

  • In code, the simplest check is:

    python

    s == s[::-1]

That one line is the essence of “what a palindrome is” in Python practice.

Information gathered from public forums or data available on the internet and portrayed here.