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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.