Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python Pangram 검사에서 Set() 사용


이 기사에서는 문자열이 Python 3.x에서 "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

정의에 따르면 완벽한 팬그램에는 '26개의 영어 알파벳'의 모든 문자가 정확히 한 번 포함됩니다. 이 튜토리얼에는 '완벽한 팬그램'의 개념이 포함되어 있지 않습니다.

이제 문제 설명과 제약 조건 집합을 살펴보겠습니다.

문제 설명 − 문자열이 주어지면 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() &List() 이해

전제조건

문자열 및 문자열 연산

이 문제에서 구현하고 있는 알고리즘을 빠르게 살펴보겠습니다. −

  1. 첫 번째 작업은 전체 입력 문자열을 소문자 또는 대문자로 변환하는 것입니다. 여기서는 upper()를 사용하여 대문자 변환을 사용하고 있습니다. "문자열" 데이터 유형 메서드 파이썬 3.x에서 또는 그 이전.

  2. 이제 (str_input)의 도움으로 함수를 사용하면 입력 문자열에 있는 모든 고유한 요소의 목록을 만들 수 있습니다.

  3. 이제 새 목록을 “dist_list” 만들 것입니다. 숫자나 특수 문자 없이 모든 고유한 알파벳을 포함합니다.

  4. 이제 dist_list 길이가 26인지 아닌지. 조건이 참이면 입력이 팬그램이고 그렇지 않으면 그렇지 않습니다.

# 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인지 여부를 파악하는 방법을 배웠습니다. 또는 더 일찍. 동일한 알고리즘을 구현하여 다른 프로그래밍 언어로 팬그램 감지기 프로그램을 만들 수 있습니다.