Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 주어진 문자열이 키워드(예약어)인지 확인하는 방법

개요

이 글에서는 파이썬에서 주어진 문자열이 키워드(keyword)인지 확인하는 방법과 그 해결 과정을 자세히 알아보겠습니다.

문제 정의

하나의 문자열이 입력으로 주어졌을 때, 해당 문자열이 파이썬의 예약어(키워드)인지 아닌지를 판별하는 프로그램을 작성해야 합니다.

키워드란 프로그래밍 언어가 문법적으로 특정 용도를 위해 미리 예약해 둔 특수 단어를 의미합니다. 따라서 키워드는 변수명이나 함수명과 같은 식별자(identifier)로 사용할 수 없습니다. 예를 들어 if, for, while, def, class, or 등이 대표적인 파이썬 키워드입니다.

풀이 접근 방식

파이썬은 기본 제공 모듈 중 하나인 keyword 모듈을 통해 현재 버전의 모든 키워드 정보를 제공합니다. 이 모듈을 활용하면 별도의 하드코딩 없이 손쉽게 키워드 여부를 확인할 수 있습니다.

  • keyword.kwlist — 파이썬의 전체 키워드가 담긴 리스트를 반환합니다.
  • keyword.iskeyword() — 문자열이 키워드이면 True, 아니면 False를 반환하는 편의 함수입니다.

예제 코드

# keyword 모듈 임포트
import keyword

# 키워드 여부를 확인하는 함수
def isKeyword(word):
    # 모든 키워드 목록 가져오기
    keyword_list = keyword.kwlist
    # 포함 여부 확인
    if word in keyword_list:
        return "Yes"
    else:
        return "No"

# 메인 실행부
if __name__ == "__main__":
    print(isKeyword("tut"))
    print(isKeyword("or"))

실행 결과

No
Yes

"tut"는 파이썬 키워드가 아니므로 No가 출력되고, 논리 연산자 키워드인 "or"Yes가 출력됩니다.

더 간단한 방법: iskeyword() 활용하기

keyword 모듈은 위 로직을 한 번에 처리해 주는 iskeyword() 함수도 제공합니다. 다음과 같이 더욱 간결하게 코드를 작성할 수 있습니다.

import keyword

print(keyword.iskeyword("or"))   # True
print(keyword.iskeyword("tut"))  # False

마무리

이번 글에서는 파이썬의 keyword 모듈을 활용해 주어진 문자열이 키워드인지 확인하는 두 가지 방법, 즉 kwlist 목록에서 직접 검색하는 방법과 iskeyword() 함수를 사용하는 방법을 살펴보았습니다. 사용자 입력값을 변수명으로 받아 처리하는 경우처럼 유효한 식별자 검증이 필요할 때 유용하게 활용할 수 있습니다.