Open In App

Python Program to test if the String only Numbers and Alphabets

Improve
Improve
Like Article
Like
Save
Share
Report

Given a String, our task is to write a Python program to check if string contains both numbers and alphabets, not either nor punctuations.

Examples:

Input : test_str = 'Geeks4Geeks'
Output : True
Explanation : Contains both number and alphabets.

Input : test_str = 'GeeksforGeeks'
Output : False
Explanation : Doesn't contain number.

Method #1 : Using isalpha() + isdigit() + any() + all() + isalnum()

In this, we check for all digits containing is alphabets and numbers combination using all(), isalpha() and isdigit(). The any() and isalnum() is used to filter out possibility of punctuations.

Python3




# Python3 code to demonstrate working of
# Test if string contains both Numbers and Alphabets only
# Using isalpha() + isdigit() + any() + all() + isalnum()
 
# initializing string
test_str = 'Geeks4Geeks'
 
# printing original string
print("The original string is : " + str(test_str))
 
# conditional combination for getting result.
res = not ((all(idx.isdigit() for idx in test_str) or (all(idx.isalpha()
            for idx in test_str)) or (any(not idx.isalnum() for idx in test_str))))
 
# printing result
print("Does string contain both numbers and alphabets only? : " + str(res))


Output

The original string is : Geeks4Geeks
Does string contain both numbers and alphabets only? : True

Time Complexity: O(n2)
Auxiliary Space: O(n)

Method #2 : Using regex

Using regex is one of the ways in which this problem can be solved. 

Python3




# Python3 code to demonstrate working of
# Test if string contains both Numbers and Alphabets only
# Using regex
import re
 
# initializing string
test_str = 'Geeks4Geeks'
 
# printing original string
print("The original string is : " + str(test_str))
 
# conditional combination for getting result.
res = bool(re.match("^(?=.*[a-zA-Z])(?=.*[\d])[a-zA-Z\d]+$", "A530"))
         
# printing result
print("Does string contain both numbers and alphabets only? : " + str(res))


Output

The original string is : Geeks4Geeks
Does string contain both numbers and alphabets only? : True

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #3 : Using in operator

Python3




# Python3 code to demonstrate working of
# Test if string contains both Numbers and Alphabets only
 
# initializing string
test_str = 'Geeks4Geeks'
lowercasealphabets="abcdefghijklmnopqrstuvwxyz"
uppercasealphabets="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
digits="0123456789"
 
# printing original string
print("The original string is : " + str(test_str))
 
res=False
al=0
dig=0
for i in test_str:
    if (i in lowercasealphabets) or (i in uppercasealphabets):
        al+=1
    elif (i in digits) :
        dig+=1
if(al+dig==len(test_str)):
    res=True
     
# printing result
print("Does string contain both numbers and alphabets only? : " + str(res))
 
 
 
#contributed by Bhavya Koganti


Output

The original string is : Geeks4Geeks
Does string contain both numbers and alphabets only? : True

Time Complexity: O(n)
Auxiliary Space: O(1)

Method #4 : Using replace() and len() methods

Python3




# Python3 code to demonstrate working of
# Test if string contains both Numbers and
# alphabets only
 
# Initializing string
test_str = 'Geeks4Geeks'
 
lalphabets = "abcdefghijklmnopqrstuvwxyz"
ualphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
digits = "0123456789"
 
x = lalphabets+ualphabets+digits
 
# Printing original string
print("The original string is : " + str(test_str))
 
for i in x:
    test_str = test_str.replace(i, "")
res = False
if(len(test_str) == 0):
    res = True
 
# Printing result
print("Does string contain both numbers and alphabets only? : " + str(res))


Output

The original string is : Geeks4Geeks
Does string contain both numbers and alphabets only? : True

Time Complexity: O(n)
Auxiliary Space: O(n)
 

Method #5: Using operator.countOf() method

Python3




# Python3 code to demonstrate working of
# Test if string contains both Numbers and Alphabets only
import operator as op
# initializing string
test_str = 'Geeks4Geeks'
lowercasealphabets="abcdefghijklmnopqrstuvwxyz"
uppercasealphabets="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
digits="0123456789"
 
# printing original string
print("The original string is : " + str(test_str))
 
res=False
al=0
dig=0
for i in test_str:
    if ( op.countOf(lowercasealphabets.split(),i)>0) or (op.countOf(uppercasealphabets.split(),i)>0):
        al+=1
    elif (op.countOf(digits.split(),i)>0) :
        dig+=1
if(al+dig==len(test_str)):
    res=True
     
# printing result
print("Does string contain both numbers and alphabets only? : " + str(res))


Output

The original string is : Geeks4Geeks
Does string contain both numbers and alphabets only? : False

Time Complexity: O(n)
Auxiliary Space: O(1)

Method #6:Using itertools.filterfalse() method

Python3




# Python3 code to demonstrate working of
# Test if string contains both Numbers and Alphabets only
import itertools
 
# initializing string
test_str = 'Geeks4Geeks'
 
# printing original string
print("The original string is : " + str(test_str))
 
# conditional combination for getting result.
res = list(itertools.filterfalse(
    lambda x: (x.isdigit() or x.isalpha()), test_str))
if(res):
    res = False
res = True
# printing result
print("Does string contain both numbers and alphabets only? : " + str(res))


Output

The original string is : Geeks4Geeks
Does string contain both numbers and alphabets only? : True

Time Complexity: O(n)
Auxiliary Space: O(N)



Last Updated : 06 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads