Open In App

Python – Test if String contains any Uppercase character

Last Updated : 10 Jan, 2025
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

The goal is to check if a given string contains at least one uppercase letter (A-Z).

Using any() and isupper()

any() function, combined with isdigit(), checks if any character in a string is a digit. It efficiently scans the string and returns True if at least one digit is found.

# Define the input string
s = "abc123"

# Check if the string contains any number
n = any(char.isdigit() for char in s)

# Print the result
if n:
    print("The string contains a number.")
else:
    print("The string does not contain any number.")

Output
The string contains a number.

Explanation:

  • Check for digits using any() and isdigit(): any() function iterates through each character in the string and isdigit() checks if a character is a digit. If at least one digit is found, any() returns True.
  • Store the result in a variable: The result is stored in the variable n to indicate whether the string contains any digits.

Using a for loop

A for loop can be used to iterate through each character in the string and check if it’s a digit using isdigit(). If a digit is found, the loop can exit early with the result.

# Define the input string
s = "abc123"

# Flag to track if number is found
n = False

# Loop through each character and check if it's a digit
for char in s:
    if char.isdigit():
        n = True
        break

# Print the result
if n:
    print("The string contains a number.")
else:
    print("The string does not contain any number.")

Output
The string contains a number.

Explanation:

  • Iterate through characters: A for loop goes through each character in the string, checking if it’s a digit using the isdigit() method.
  • Set flag and exit early: If a digit is found, the flag contains_number is set to True and the loop exits early with a break to avoid unnecessary checks.

Using Regular Expressions

Regular expressions (regex) provide a flexible way to search for patterns in a string. Using re.search(r'\d', text), you can efficiently check if a string contains any digits by looking for the pattern \d (any numeric character).

import re

# Define the input string
s = "abc123"

# Check if the string contains any digit using regex
n = bool(re.search(r'\d', s))

# Print the result
if n:
    print("The string contains a number.")
else:
    print("The string does not contain any number.")

Output
The string contains a number.

Explanation

  • Search for digits using regex: re.search(r'\d', s) function looks for the pattern \d, which matches any digit, in the string s. If a match is found, it returns a match object; otherwise, it returns None.
  • Convert to boolean: Result of re.search() is converted to a boolean value using bool(), where True indicates the presence of at least one digit in the string.

Using filter() and isdigit()

filter() function, combined with isdigit(), can be used to extract all digits from a string. By checking if the filtered result contains any digits, we can determine whether the string includes numeric characters.

# Define the input string
s = "abc123"

# Filter digits and check if any exists
n = bool(list(filter(str.isdigit, s)))

# Print the result
if n:
    print("The string contains a number.")
else:
    print("The string does not contain any number.")

Output
The string contains a number.

Explanation:

  • Filter digits from the string: filter() function applies str.isdigit to each character in the string, extracting only the numeric characters.
  • Check for digits: The filtered result is converted to a list and bool() checks if the list is non-empty, indicating the presence of at least one digit.


Next Article
Practice Tags :

Similar Reads

three90RightbarBannerImg