파이썬 문법 오류 (Python syntax error) 알아보기.

파이썬 문법 오류: 이유와 해결 방법

오류 메시지

파이썬으로 코딩을 하다 보면 이런 경고 메시지가 뜰 때가 있습니다.

python
SyntaxError: invalid syntax

이 오류는 문법 오류를 의미합니다. 파이썬 인터프리터가 읽을 수 없는 코드가 있는 경우 발생합니다.

1. 명령어나 변수 이름에 문제가 있을 때

1-1. 오타가 있는 경우

오타가 있는 경우, 파이썬 인터프리터는 해당 코드를 읽을 수 없기 때문에 오류가 발생합니다. 이 경우, 오타를 찾아 수정해야 합니다.

python
name = "john"
prnt(name) # 오타: prnt -> print

1-2. 예약어를 변수 이름으로 사용한 경우

파이썬 예약어는 변수 이름으로 사용할 수 없습니다. 이 경우, 적절한 변수 이름으로 바꿔 주어야 합니다.

python
class = "math" # 예약어를 변수 이름으로 사용
classname = "math" # 적절한 변수 이름으로 수정

2. 괄호, 따옴표 등에 문제가 있을 때

2-1. 따옴표가 닫히지 않은 경우

따옴표가 닫히지 않으면, 파이썬 인터프리터는 문자열이 끝나지 않았다고 판단합니다. 이 경우, 따옴표를 추가해야 합니다.

python
print("Hello # 끝 따옴표가 빠져 있음

2-2. 괄호의 개수가 맞지 않은 경우

()나 [] 등의 괄호의 개수가 맞지 않으면, 파이썬 인터프리터는 해당 코드를 읽을 수 없습니다. 이 경우, 괄호의 개수를 맞춰주어야 합니다.

python
lst = [1, 2, 3
print(lst) # 괄호 개수가 맞지 않음
lst = [1, 2, 3]
print(lst) # 괄호 개수를 맞춰줌

3. 들여쓰기에 문제가 있을 때

파이썬은 탭(tab)과 공백(space)을 모두 인식합니다. 하지만, 함께 사용하는 것은 지양해야 합니다. 들여쓰기를 바르게 해주어야 합니다.

3-1. 탭과 공백을 함께 사용한 경우

탭과 공백을 함께 사용하는 경우, 파이썬 인터프리터는 각각을 다른 것으로 처리합니다. 이 경우, 들여쓰기를 모두 공백으로 바꾸어 주어야 합니다.

python
def print_name():
print("john") # 탭과 공백을 혼용함
print("smith") # 탭과 공백을 혼용함

3-2. 들여쓰기가 맞지 않은 경우

들여쓰기가 맞지 않은 경우, 파이썬 인터프리터는 해당 코드를 읽을 수 없습니다. 이 경우, 들여쓰기를 맞춰주어야 합니다.

python
def print_name():
print("john") # 들여쓰기가 맞지 않음
print("smith")

4. 기타 문제

4-1. 줄 바꿈을 하지 않은 경우

한 줄에 너무 많은 코드를 썼을 경우, 파이썬 인터프리터는 해당 코드를 만나면 오류 메시지를 출력합니다. 이 경우, 줄 바꿈을 해주어야 합니다.

python
x = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 # 한 줄에 너무 많은 코드
print(x)

4-2. 모듈을 임포트하지 않은 경우

외부 모듈을 사용할 경우, 해당 모듈을 임포트해야 합니다. 이 경우, 모듈을 임포트하면 됩니다.

python
import math # 모듈을 임포트하지 않음
print(math.sqrt(4))

결론

파이썬 문법 오류는 쉽게 발생할 수 있습니다. 적절한 들여쓰기, 괄호의 개수, 변수 이름 등을 잘 체크해 주어야 합니다. 이러한 세심한 주의가 태산입니다. Happy coding!