Q. stdio
, write
, writeln
등에서 단어의 철자가 틀리거나 괄호를 빼먹으면 어떤 일이 생기나?
A. 구체적으로 어떻게 잘못했는지에 따라 다르다. 이 오류는 구문 오류(syntax error)라고 하며, 일반적으로 컴파일러가 잡아낸다. 예를 들어 helloworld.py
와 똑같지만 첫 번째 여는 괄호를 실수로 빠트린 bad.py
를 컴파일하면 다음과 같이 도움이 되는 메시지를 볼 수 있다.
% python3 bad.py File "bad.py", line 4 stdio.write'Hello, World') ^ SyntaxError: invalid syntax
이 메시지를 보면 여는 괄호를 넣어야 함을 쉽게 짐작할 수 있다. 그러나 컴파일러가 늘 여러분의 실수를 제대로 지적할 수 있는 것은 아니어서, 에러 메시지가 이해하기 어려운 경우도 있다. 예를 들어 여는 괄호 대신 닫는 괄호를 실수로 빠트리면 다음과 같이 오류가 발생한 줄의 다음 줄을 참조하는 메시지가 출력된다.
% python3 bad.py File "bad.py", line 5 ^ SyntaxError: unexpected EOF while parsing
간단한 프로그램에 일부러 오류를 발생시켜 어떤 메시지가 출력되는지 확인해보면 이런 오류 메시지에 익숙해질 수 있다. 어떤 오류 메시지가 발생하든 오류 메시지를 일종의 친구로 생각해야 한다. 여러분이 만든 프로그램에 어떤 오류가 있는지 알려주려 하기 때문이다.