Python으로 작성한 프로그램 실행하기 전에 구문의 문법적 정합성을 체크하여 문자열을 큰따옴표(“ ”)로 감싸지 않거나 들여쓰기를 이용한 블록 구조를 위반 등의 정합성 위반이 발견됐을 때 구문 에러(SyntaxError)가 발생합니다. 이 글에서는 SyntaxError: 에 대한 예를 들어 그 대응 방법을 소개합니다.
SyntaxError: invalid syntax
함수(def) 나 for, if 문등의 마지막에 콜론( : )을 붙입니다. 다음 예는 함수 선언문 끝에 콜론( : )을 지정하지 않아서 발생한 구문 에러입니다.
>>> def test()
File "<stdin>", line 1
def test()
^
SyntaxError: invalid syntax
다음과 같이 수정하면 에러가 발생하지 않습니다.
>>> def test():
... print( "test" )
...
>>> test()
test
SyntaxError: EOL while scanning string literal
다음 예는 문자열을 큰따옴표(“ ”)로 닫지 않아서 발생한 구문 에러입니다.
>>> print( "test )
File "<stdin>", line 1
print( "test )
^
SyntaxError: EOL while scanning string literal
다음과 같이 수정하면 에러가 발생하지 않습니다.
>>> print( "test" )
test
SyntaxError: unexpected EOF while parsing
다음 예는 print()문의 괄호를 닫지 않아서 발생한 구문 에러입니다.
>>> def test():
... print( "test"
... ^Z
File "<stdin>", line 2
print( "test"
^
SyntaxError: unexpected EOF while parsing
다음과 같이 괄호의 시작에 대응하는 끝을 닫으면 구문 에러가 발생하지 않습니다.
>>> def test():
... print( "test" )
...
>>> test()
test
SyntaxError: invalid character in identifier
다음 예는 연산자에 전각문자를 사용하거나 구문에 약속된 문자코드를 사용하지 않아서 발생한 구문 에러입니다. (※전각과 반각에 대한 상세한 설명은 외부 사이트 여기를 참조 하십시오.)
>>> 1*1
File "<stdin>", line 1
1*1
^
SyntaxError: invalid character '*' (U+FF0A)
다음과 같이 반각문자로 변경하면 구문 에러가 발생하지 않습니다.
>>> 1*1
1
댓글