Open In App

Python program to check if given string is pangram

Last Updated : 30 Dec, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

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.


Similar Reads

three90RightbarBannerImg