SyntaxError: invalid syntax 해결방법
※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!
ο 목차
1. 문제 사례
파이썬 코드 실행 중 SyntaxError 발생
2. 오류 메세지 내용 상세
SyntaxError: invalid syntax
3. 문제 원인
파이썬에 정의된 문법에 맞지 않는 코드가 사용되는 경우 에러 발생.
파이썬은 있어야 할 게 없거나, 없어야 할 게 있거나, 사용하지 말아야 할 변수명을 사용하거나, 다른 코딩 언어의 문법 규칙을 무의식중에 쓰는 등의 모든 행위를 SyntaxError로 뭉뚱그려 오류 메시지를 출력함.
4. 문제 해결 방법
다른 오류 메세지와 달리 SyntaxError : Invalid syntax, 혹은 invalid token 은 오류 메세지 안에 트러블슈팅에 대한 힌트가 들어있지 않아 원인 파악이 어려움. 하지만 오류만 파악되면 손쉽게 수정 가능함.
↓ 아래 사항을 하나씩 확인해가며 트러블 슈팅 진행.
1) 오류가 발생한 위치 파악
SyntaxError 발생시 파이썬에서 출력한 오류 위치가 반드시 정확한 오류 발생 위치는 아닐 수 있다는 점을 염두에 두고 트러블 슈팅 진행.
오류 발생 위치의 문법에 문제가 없는 경우, 이전 줄에서 문법 오류가 발생했을 가능성이 높음.
2) 변수 이름 확인
변수 이름에 Python 키워드가 들어가 있는지 확인
3) 콜론 확인
for, while, if 및 def 문을 포함한 모든 복합문의 헤더 끝에 콜론(:)이 있는지 확인
-> 콜론(:)이 없는 경우 문법 오류 발생
4) 들여쓰기 확인
들여쓰기가 tab 혹은 스페이스 중 하나로 통일되어 있는지 확인.
5) 쌍 문자 확인
' ', " ", (), {}, [] 등 쌍으로 동작하는 문자들이 정확히 한쌍씩 짝을 맞추고 있는지 확인.
※ 생각보다 많은 경우에서 괄호를 제대로 닫지 않아 문법 오류가 발생함.
6) == 확인
==을 =로 쓰고 있지 않은지 확인, 혹은 =을 ==로 쓰고 있지 않은지 확인
※ == : 두 수가 같은지 논리적으로 비교할 때 사용
= : 등호 오른쪽 값을 왼쪽의 변수에 복사할 때 사용
※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다.