Python 中使用 Set() 进行 Pangram 检查
在本文中,我们将学习如何在 Python 3.x 或更早版本中确定一个字符串是否为“Pangram”。Pangram 字符串包含英语字母表中的每个字母。让我们看看下面的示例 -
Provided Input: str = 'This is the python blog on Tutorial point' Desired Output: No Provided Input : str='I want to contribute to a 'dxyzwuvghlkfmq' open source project' Desired Output: Yes
根据定义,一个完美的 Pangram 包含英语字母表中的每个字母恰好一次。本教程不包含“完美 Pangram”的概念。
现在让我们看看问题陈述和约束条件。
问题陈述 - 给定一个字符串,检查它是否为 Pangram。
约束条件
- 小写和大写字母被视为相同。
- 如上所述,对完美 Pangram 的情况没有强制要求。
Input: First line of input contains the test string ‘str_input ’ Output: Print 'String is a Pangram' if conditions evaluate to be true, otherwise it displays 'String is not a Pangram'.
相关数据结构
Set() & 列表推导式
先决条件
字符串 & 字符串操作
让我们快速浏览一下我们在此问题中实现的算法 -
我们的第一个任务是将整个输入字符串转换为小写或大写。在这里,我使用 Python 3.x 或更早版本中数据类型“字符串”的 **upper()** 方法进行大写转换。
现在,借助 **(str_input)** 函数,我们可以创建一个包含输入字符串中所有不同元素的列表。
现在,我们将创建一个新列表 **“dist_list”**,其中包含所有不同的字母,不包含任何数字或特殊字符。
现在检查 **dist_list** 的长度是否为 26。如果条件成立,则输入为 Pangram,否则不是。
示例
# user-defined function to check Pangram def check_pangram(input): # convert input string into uppercase str_input = str_input.upper() # convert input string into Set() # a list of distinct elements will be formed. str_input = set(str_input) # separate out alphabets from numbers and special characters # ord(ch) returns the ASCII value of the character dist_list = [ char for char in str_input if ord(char) in range(ord('a'), ord('z')+1)] if len(dist_list) == 26: return 'String is a Pangram' else: return 'String is not a Pangram' # Executable main function if __name__ == "__main__": str_input = input() print check_pangram(str_input)
结论
在本文中,我们学习了如何使用 Python 3.x 或更早版本来确定一个字符串是否为 Pangram。您可以使用相同的算法在任何其他编程语言中创建 Pangram 检测程序。
广告