Problem Formulation
Given a string s. How to get a Boolean value that indicates whether all characters in the string are lowercase?
Example: Say, you ask the user for input and you want to check whether all input characters are lowercase for further processing:
s = input('your name: ') if <STRING IS LOWERCASE>: print('All characters in your string are lowercase')
If the user types in 'alice'
, the function should return True
whereas it should return False
for the string 'Alice'
or 'ALICE'
.
Simple Solution: string.islower()
Python’s islower()
method is one of the built-in string methods that returns True
if all string characters are lowercase and otherwise False
. For example, the lowercase string 'alice'.islower()
returns True
and the uppercase string 'Alice'.islower()
returns False
.
>>> 'alice'.islower() True
Even if you inject some whitespaces, it’ll still yield a True
value:
>>> 'al ic \ne'.islower() True
And here are some examples that yield a False
value:
>>> 'Alice'.islower() False >>> 'ALICE'.islower() False >>> 'alicE'.islower() False
How to Count the Number of Lowercase Letters in a String?
Problem Formulation: A variant of the problem is to count the number of lowercase letters in a given string.
Examples: Here are three strings and the desired return values.
'alice'
has five (5) lowercase letters.'Alice'
has four (4) lowercase letters.'ALICE'
has zero (0) lowercase letters.
Solution:
You can use the list comprehension statement [c for c in s if c.islower()]
to create a list of lowercase letters in a given string s
. Then pass the resulting list of lowercase characters into Python’s built-in len()
function to obtain the number of lowercase characters in s
.
Here’s the code for our three examples:
def count_lowercase(s): return len([c for c in s if c.islower()]) print(count_lowercase('alice')) # 5 print(count_lowercase('Alice')) # 4 print(count_lowercase('ALICE')) # 0
How to Get a List of All Lowercase Characters in a String?
Problem Formulation: A variant of the problem is to return a list of lowercase letters in a given string.
Examples: Here are three strings and the desired return values.
'alice'
should yield the list['a', 'l', 'i', 'c', 'e']
.'Alice'
should yield the list['l', 'i', 'c', 'e']
.'ALICE'
should yield the empty list[]
.
Solution:
You can use the list comprehension statement [c for c in s if c.islower()]
to create a list of lowercase letters in a given string s
.
Here’s the code for our three examples:
def get_lowercase_chars(s): return [c for c in s if c.islower()] print(get_lowercase_chars('alice')) # ['a', 'l', 'i', 'c', 'e'] print(get_lowercase_chars('Alice')) # ['l', 'i', 'c', 'e'] print(get_lowercase_chars('ALICE')) # []
Alternatives to Check if a String is All Lowercase
There are many ways to Rome—you can solve this problem to check if a string is all lowercase in many different ways.
s = 'alice'
1. Use the predefined str
method islower()
>>> s.islower() False
2. Use the all()
function to check if every letter is lowercase.
>>> all(s.islower() for c in s) True
3. Convert the string to a lowercase string and compare it to the original
>>> s.lower() == s True
4. Use regular expressions and the re.fullmatch()
function combined with character classes.
>>> import re >>> bool(re.fullmatch('[a-z\s]+', s)) True >>> s = 'ALICE IS LOWER' >>> bool(re.fullmatch('[a-z\s]+', s)) False

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.