How do I check if a string has alphabets or numbers in Python?

In Python, you can check whether a string contains letters, numbers, or both using built-in string methods such as isalpha(), isdigit(), and isalnum(). You can also use loops or regular expressions for more customized checks.

Checking for Only Alphabets

The isalpha() method returns True if every character in the string is a letter (a-z or A-Z) and the string is not empty. It is useful for validating names or inputs that should contain only alphabets.

Example

In this example, we check if the string has only alphabets using the isalpha() method ?

text = "HelloWorld"
print(text.isalpha())

# Testing with mixed content
mixed_text = "Hello123"
print(mixed_text.isalpha())

The output shows that the first string returns True since it contains only letters, while the second returns False due to numbers ?

True
False

Checking for Only Numbers

The isdigit() method returns True if all characters in the string are numeric digits (0-9) and the string is not empty. It is commonly used to validate numerical input like age or ID numbers.

Example

In this example, we verify if the string consists of only numbers using the isdigit() method ?

text = "12345"
print(text.isdigit())

# Testing with mixed content
mixed_text = "123abc"
print(mixed_text.isdigit())

The result shows True for pure digits and False for mixed content ?

True
False

Checking for Alphanumeric Characters

The isalnum() method returns True if all characters are either letters or digits. This is useful when you want to allow both alphabets and numbers but exclude special characters.

Example

text1 = "abc123"
text2 = "abc123!"

print("'abc123' is alphanumeric:", text1.isalnum())
print("'abc123!' is alphanumeric:", text2.isalnum())
'abc123' is alphanumeric: True
'abc123!' is alphanumeric: False

Checking for Either Alphabets or Numbers

To check if a string contains at least one letter or one digit, you can use a loop to go through each character or apply regular expressions. This is helpful when strings may contain a mix of character types.

Using any() Function

In this example, we check for the presence of at least one letter or number using the any() function ?

text = "abc123!"

has_alpha = any(c.isalpha() for c in text)
has_digit = any(c.isdigit() for c in text)

print("Contains alphabet:", has_alpha)
print("Contains digit:", has_digit)
print("Contains both:", has_alpha and has_digit)

Following is the output obtained ?

Contains alphabet: True
Contains digit: True
Contains both: True

Using Regular Expressions

Regular expressions use pattern matching to check if alphabets, digits, or other character types are present within a string.

This example uses the re.search() function to find matching patterns inside the string ?

import re

text = "code2024"

has_alpha = bool(re.search(r"[A-Za-z]", text))
has_digit = bool(re.search(r"\d", text))

print("Contains at least one alphabet:", has_alpha)
print("Contains at least one digit:", has_digit)

We get the output as shown below ?

Contains at least one alphabet: True
Contains at least one digit: True

Comparison of Methods

Method Purpose Returns True When
isalpha() Check only letters All characters are alphabets
isdigit() Check only numbers All characters are digits
isalnum() Check letters or numbers All characters are alphanumeric
any() + loops Check presence of specific types At least one character matches condition
Regular expressions Pattern matching Pattern found in string

Conclusion

Use isalpha(), isdigit(), or isalnum() for simple validation checks. Use any() with loops or regular expressions when you need to detect the presence of specific character types in mixed content.

Updated on: 2026-03-24T16:31:22+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements