개요
이 글에서는 파이썬에서 주어진 문자열이 키워드(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() 함수를 사용하는 방법을 살펴보았습니다. 사용자 입력값을 변수명으로 받아 처리하는 경우처럼 유효한 식별자 검증이 필요할 때 유용하게 활용할 수 있습니다.