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。

约束条件

  1. 小写和大写字母被视为相同。
  2. 如上所述,对完美 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() & 列表推导式

先决条件

字符串 & 字符串操作

让我们快速浏览一下我们在此问题中实现的算法 -

  1. 我们的第一个任务是将整个输入字符串转换为小写或大写。在这里,我使用 Python 3.x 或更早版本中数据类型“字符串”的 **upper()** 方法进行大写转换。

  2. 现在,借助 **(str_input)** 函数,我们可以创建一个包含输入字符串中所有不同元素的列表。

  3. 现在,我们将创建一个新列表 **“dist_list”**,其中包含所有不同的字母,不包含任何数字或特殊字符。

  4. 现在检查 **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 检测程序。

更新于: 2020年6月30日

261 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告