Page 19 -
P. 19
Q&A
Q. 탭, 공백, 개행 문자 등 공백 문자에 대해 파이썬은 어떤 규칙을 가지고 있나?
A. 일반적으로 파이썬은 프로그램 안에 있는 공백 문자를 모두 동일하게 처리하지만, 문자열 리터럴
과 들여쓰기에서는 예외적으로 구분한다. 문자열 리터럴은 'Hello, World'처럼 작은따옴표 안에
들어 있는 일련의 문자들이다. 따옴표 안에 넣는 공백은 정확히 그대로 인식된다. 들여쓰기는 행
의 앞에 나오는 공백을 말한다. 1.3절에서 설명하는 것처럼 소소코드 각 줄 앞에 나오는 공백의 수
는 파이썬 프로그램을 구조화하는 데 중요한 역할을 한다. 일단 지금은 코드를 들여 쓰지 않는다.
Q. 주석은 왜 사용하는가?
A. 여러분이 작성한 코드를 다른 사람이 이해하거나, 혹은 여러분이 나중에 자신의 코드를 다시 볼
때에 코드를 이해할 수 있게 도와주므로 주석을 반드시 사용해야 한다. 지면상의 제약 때문에 책
에서 나열하는 코드는 주석을 최대한 적게 사용하는 대신, 코드 설명 부분에서 글과 그림을 이용
해 자세히 설명한다. 도서 웹사이트에서 내려받은 프로그램 코드에는 실제 프로그래밍할 때처럼
주석이 달려 있다.
Q. 여러 문장을 한 줄에 넣을 수 있는가?
A. 넣을 수 있다. 다만 각 문장을 세미콜론으로 구분해야 한다. 예를 들어 다음의 코드 한 줄은
helloworld.py와 똑같은 메시지를 출력한다.
import stdio; stdio.writeln('Hello, World')
프로그래밍 스타일의 문제이지만 대부분의 프로그래머는 이처럼 한 줄에 여러 문장을 넣는 스타
일을 피한다.
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
이 메시지를 보면 여는 괄호를 넣어야 함을 쉽게 짐작할 수 있다. 그러나 컴파일러가 늘 여러분의
실수를 제대로 지적할 수 있는 것은 아니어서, 에러 메시지가 이해하기 어려운 경우도 있다. 예를
028