
파이썬 프로그래밍을 시작할 때 가장 먼저 배우는 것 중 하나가 바로 변수를 만드는 법입니다. 하지만 내가 원하는 이름을 마음대로 붙이다 보면 갑자기 SyntaxError라는 벽에 부딪힐 때가 있습니다. 바로 파이썬 시스템이 이미 '특정한 용도'로 찜해둔 키워드(Keywords) 혹은 예약어(Reserved Words)를 건드렸기 때문입니다. 오늘은 왜 키워드를 변수명으로 쓸 수 없는지, 그리고 이를 피하면서도 세련되게 이름을 짓는 노하우를 공유해 드립니다.
1. 파이썬 키워드란 무엇이며 왜 변수로 쓸 수 없을까?
파이썬 키워드는 언어 자체의 문법을 정의하기 위해 미리 예약된 단어들입니다. 예를 들어 if는 조건문을, def는 함수 정의를 위해 시스템이 사용합니다. 만약 우리가 if = 10이라고 변수를 선언해 버린다면, 파이썬 인터프리터는 이것이 조건문의 시작인지 숫자를 담은 변수인지 판단할 수 없게 됩니다. 즉, 언어의 해석 체계가 무너지는 것을 방지하기 위해 키워드는 변수명으로 사용이 금지되어 있습니다.
2. 파이썬의 주요 키워드 리스트
파이썬 버전에 따라 키워드는 조금씩 추가되기도 합니다. 현재 가장 널리 쓰이는 파이썬 3.x 버전을 기준으로 주요 키워드들을 분류해 보았습니다.
| 카테고리 | 키워드 예시 | 주요 역할 |
|---|---|---|
| 논리 및 불리언 | True, False, None, and, or, not | 참/거짓 판단 및 논리 연산 |
| 조건 및 반복문 | if, elif, else, for, while, break, continue | 프로그램의 흐름 제어 |
| 함수 및 클래스 | def, class, return, lambda, yield | 구조화된 코드 정의 |
| 예외 처리 | try, except, finally, raise, assert | 오류 발생 시 대처 로직 |
| 기타 모듈/변수 | import, from, as, global, nonlocal, del | 외부 라이브러리 호출 및 변수 범위 지정 |
3. 실전 사례: 키워드 충돌과 해결 방법 (Sample Example)
실제 코딩 중에 실수하기 쉬운 사례와 이를 우아하게 피하는 방법을 살펴보겠습니다.
잘못된 사례 (SyntaxError 발생)
# [에러] pass는 아무것도 하지 않는 키워드이므로 변수명 사용 불가
pass = "Password123"
# [에러] return은 값을 반환하는 키워드임
return = 200
올바른 해결 방법 (Best Practice)
키워드와 의미가 겹치는 변수명을 써야 할 때는 다음과 같은 전략을 사용합니다.
# 1. 의미를 더 구체적으로 부여하기 (가장 추천)
user_password = "Password123"
response_code = 200
# 2. 뒤에 언더바(_)를 추가하기 (파이썬 관습)
pass_ = "Password123"
class_ = "First Grade"
특히 class나 list처럼 아주 흔하게 쓰이는 단어들은 뒤에 언더바를 하나 붙여 class_ 형식으로 사용하는 것이 파이썬 커뮤니티의 오랜 관습입니다.
4. 현재 내 파이썬의 키워드를 확인하는 꿀팁
모든 키워드를 외울 필요는 없습니다. 파이썬 코드를 실행할 수 있는 환경이라면 아래 명령어로 즉시 최신 키워드 목록을 뽑아볼 수 있습니다.
import keyword
print(keyword.kwlist)
이 리스트에 들어있는 단어들만 피하면 여러분의 코드는 문법적으로 안전합니다.
5. 결론: 변수명은 '소통'입니다
키워드를 피하는 것은 단순히 에러를 막기 위함이 아닙니다. 변수명은 코드를 읽는 다른 사람(혹은 미래의 나)과의 소통 수단입니다. for = 5 같은 코드보다는 loop_count = 5가 훨씬 더 많은 정보를 전달합니다. 파이썬의 예약어를 존중하면서, 동시에 데이터의 성격을 명확히 드러내는 이름을 짓는 습관을 들여보세요.
내용 출처 및 참고 자료
- Python Software Foundation: Lexical Analysis - Keywords
- Real Python: Python Keywords and Built-in Functions
- W3Schools: Python Keywords Reference
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] SyntaxError 해결을 위한 완벽 가이드 : 코드의 숨은 그림 찾기 체크리스트 (0) | 2026.01.30 |
|---|---|
| [PYTHON] 파이썬은 대소문자를 구분할까? 개발자가 반드시 알아야 할 명칭 규약과 사례 (0) | 2026.01.30 |
| [PYTHON] 주석(Comment)을 다는 가장 좋은 방법은? 클린 코드를 위한 가이드 (0) | 2026.01.29 |
| [PYTHON] .py vs .ipynb : 개발 환경에 따른 최적의 선택 가이드 (0) | 2026.01.29 |
| [PYTHON] input()으로 받은 숫자가 왜 계산이 안 되나요? 데이터 타입의 비밀과 형변환 완전 정복 (0) | 2026.01.29 |