Python program to check if given string is pangram
The task is to check if a string is a pangram which means it includes every letter of the English alphabet at least once. In this article, we’ll look at different ways to check if the string contains all 26 letters.
Using Bitmasking
Bitmasking uses a number where each bit represents a letter in the alphabet. It updates the bits as it finds letters in the string and checks if all 26 letters are present.
Example:
# Input string
s = "The quick brown fox jumps over the lazy dog"
# Initialize bitmask for tracking found letters
f = 0
# Loop through each character in lowercase string
for char in s.lower():
if char.isalpha(): # Check if the character is alphabetic
f |= 1 << (ord(char) - ord('a')) # Set corresponding bit for letter
if f == (1 << 26) - 1: # All letters found
print(True) # It's a pangram
break
else:
print(False) # Not a pangram
Output
True
Using sets
We can use sets
to store unique characters and perform fast checks. string.ascii_lowercase
gives a string of all lowercase letters, which can be turned into a set for easy comparison.
Example:
import string
# Input string
a = "The quick brown fox jumps over the lazy dog"
# Create set of all lowercase English letters
b = set(string.ascii_lowercase)
# Convert input text to lowercase
# Create a set of characters
s = set(a.lower())
# Check if `s` contains all letters of `b`
res = b <= s
print(res)
Output
True
Using all()
all() function checks if every condition in a list is true. Here, it checks if every letter of the alphabet is in the given text and returns True only if all letters are found.
Example:
import string
# Input text
s = "Python is great"
# Check if all letters are in `s`
res = all(letter in s.lower() for letter in string.ascii_lowercase)
print(res)
Output
False
Using count()
count() method checks how many times each letter appears in the string. It repeatedly does this for all letters of the alphabet to see if the string contains every letter.
Example:
import string
# Input text
s = "The quick brown fox jumps over the lazy dog."
# Check if each letter of the alphabet appears in `t`
for letter in string.ascii_lowercase:
if s.lower().count(letter) == 0:
print(False)
break
else:
print(True)
Output
True
Explanation:
- string.ascii_lowercase provides all lowercase letters to check against the input string.
- s.lower().count(letter) This checks if each letter appears in `s`, prints False if any letter is missing.