Python | Ways to check if given string contains only letter
Given a string, write a Python program to find whether a string contains only letters and no other keywords. Let’s discuss a few methods to complete the task.
Method #1: Using isalpha() method
Python3
ini_str = "ababababa"
print ( "Initial String" , ini_str)
if ini_str.isalpha():
print ( "String contains only letters" )
else :
print ( "String doesn't contains only letters" )
|
Output
Initial String ababababa
String contains only letters
Time complexity: O(n), where n is length of ini_str.
Auxiliary Space: O(1)
Method #2: Using re
Python3
import re
ini_str = "ababababa"
print ( "Initial String" , ini_str)
pattern = re. compile ( "^[a-zA-Z]+$" )
if pattern.match(ini_str):
print ( "Contains only letters" )
else :
print ( "Doesn't contains only letters" )
|
Output
Initial String ababababa
Contains only letters
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #3 : Without any builtin methods
Python3
ini_str = "ababababa"
lowerletters = "abcdefghijklmnopqrstuvwxyz"
upperletters = "ABCDEFGIJKLMNOPQRSTUVWXYZ"
a = lowerletters + upperletters
print ( "Initial String" , ini_str)
c = 0
for i in ini_str:
if i in a:
c + = 1
if (c = = len (ini_str)):
print ( "String contains only letters" )
else :
print ( "String doesn't contains only letters" )
|
Output
Initial String ababababa
String contains only letters
Method #4: Using operator.countOf() method
Python3
import operator as op
ini_str = "ababababa"
lowerletters = "abcdefghijklmnopqrstuvwxyz"
upperletters = "ABCDEFGIJKLMNOPQRSTUVWXYZ"
a = lowerletters + upperletters
print ( "Initial String" , ini_str)
c = 0
for i in ini_str:
if op.countOf(a, i):
c + = 1
if (c = = len (ini_str)):
print ( "String contains only letters" )
else :
print ( "String doesn't contains only letters" )
|
Output
Initial String ababababa
String contains only letters
Time Complexity: O(N)
Auxiliary Space : O(1)
Method#5: Using Ord() method.
Approach: For each character, we use the ord() method to get the ASCII value of the character. Then we check if the ASCII value is within the range of ASCII values for uppercase and lowercase letters (65-90 and 97-122 respectively). If the ASCII value is not within these ranges, it means that the character is not a letter, and the code prints “String doesn’t contains only letters” and breaks out of the loop. If the loop completes without breaking, it means all the characters in the string are letters, and the code prints “String contains only letters”.
Python3
ini_str = "ababababa"
print ( "Initial String" , ini_str)
for char in ini_str:
ascii_val = ord (char)
if not (ascii_val > = 65 and ascii_val < = 90 ) and not (ascii_val > = 97 and ascii_val < = 122 ):
print ( "String doesn't contains only letters" )
break
else :
print ( "String contains only letters" )
|
Output
Initial String ababababa
String contains only letters
Time Complexity: O(N)
Auxiliary Space : O(1)
Last Updated :
30 Mar, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...