[Python101] 001. 문자를 출력해보다.

출력해보기

아마도 C언어가 세상에 알려질 때 “Hello World!”라는 문장을 출력하는 시연을 했던 것이 시초가 되어 프로그래밍 언어를 시작하는 개발자들은 맨 먼저 이 문장을 출력해보는 코드를 작성하곤 한다고 한다. 이는 단순히 관습이라기보다는 보다 중요한 의미를 갖는다. 프로그램은 기본적으로 “어떤 처리를 해주는 기계 장치”에 가까운 개념이다. 그러니까 입력→처리→출력의 과정을 통해서 작업을 수행한다.

문자열을 찍어서 표시하는 기능은 이 출력의 중요한 부분을 차지하게 된다. 그런데 문제는 뭔가를 ‘출력’할 때는 그 표현 양식이 중요하다는 점이다. 그래서 프로그래밍 언어마다 문자열을 포매팅(서식화)하는 부분은 나름 상당히 중요하게 다뤄지고 있고, 이 부분은 깊게 공부하고자 한다면 상당히 살펴야 하는 분량이 많다. (문자열을 다루는 것 자체가 생각보다 범위가 많고 또 그만큼 중요하다.) 따라서 프로그래밍을 통해 실제로 쓸모 있는 것을 만드는 것을 가정한다면 입출력과 관련한 부분은 꽤나 중요하다고 볼 수 있다. 그래서 다른 개념들에 앞서서 이 부분을 좀 먼저 다뤄 봐야 할 것 같다.

ex01

가장 먼저 print 명령에 대해 살펴보도록 하겠다. print 명령은 정해진 문자열을 콘솔 화면에 출력해주는 명령이다.

print {출력할 것}

위와 같은 형식으로 쓰며, 실제로 중괄호 {}는 쓰지 않는다. 이 중괄호는 명령이나 구문에서 직접 넣어줘야 하는 것을 의미하는 형식상의 표현이라 보면 된다.

우리가 (공식적으로는) 처음으로 작성해볼 ex01.py는 간단히 텍스트를 출력해주는 프로그램이다. 한줄 한줄 정확하게 타이핑해 보도록 하자. (화면이 좁아 읽기 불편하다면 텍스트 편집기에 붙여 넣은 다음, 실제로 그 내용을 보면서 꼭 직접 타이핑하도록 한다. 맥용 IDLE에서는 한글 입력이 안되는 문제가 있는데, 불가피한 경우에는 텍스트 에디터에서 작성 후 IDLE에서 붙여 넣자.)

#!/usr/bin/python
#-*-coding:utf-8

# 1번 행은 터미널에서 바로 실행될 수 있도록 함
# 2번 행은 주석이나 문자열에 한글을 쓸 수 있도록함
# 윈도의 경우에는 -*-coding:cp949 로 해야 함

# 문자열을 출력할 때는 print 명령을 사용한다.
# 문자열은 겹따옴표나 홑따옴표로 둘러싸게 된다.

print "Hello World!"
print 'Hello World!'

# 위 두 문장은 똑같은 결과를 출력한다. 차이가 있는지?

print
print
# print 만 쓴 문장은 빈줄을 출력한다.

print "You're typing your first python program."
print 'He said "Good morning." and waved to me.'

# 위 두 문장은 무슨 차이가 있는지? 따옴표의 종류에 주목할 것

# using escape characters

print "That's The \"GREATEST\" program."

# another escape charaters
print
print
print "This line is printed in \n2 lines."
print "\tAnd this line is printed with indentation."
print "You can also print\n\t* a kind of\n\t* list\n\t* like this way."
print "\n\nIf you want to print 'back slash', use escape character : \\\\"

# 파이썬은 긴 문자열을 출력할 때 이렇게 쓸 수도 있음

print """You can print multi-line text, with triple double-quotes
like this. print 2, 3, 4 ,5 or more line as you type.
You can also using \\ escape character \\ in this representation.
and "Qouted Sentence using 'qoutes' is also available."."""

# 마지막으로 재밌는 표현하나더
print '.' * 20

위 코드를 정확히 타이핑했다면, 실행 후 다음과 같은 내용을 볼 수 있을 것이다.

Hello World!
Hello World!

You're typing your first python program.
He said "Good morning." and waved to me.
That is 'The "GREATEST" program.

This line is printed in
2 lines.
And this line is printed with indentation.
You can also print
    * a kind of
    * list
    * like this way.

If you want to print 'back slash', use escape character : \\
You can print multi-line text, with triple double-quotes
like this. print 2, 3, 4 ,5 or more line as you type.
You can also using \ escape character \ in this representation.
and "Qouted Sentence using 'qoutes' is also available.".
....................

1) # 문자로 시작하는 행은 주석(코멘트)이다. 주석은 프로그램 실행에 아무런 영향을 주지 않는다. 대신 나중에 작성된 코드를 다시 읽어볼 때 이 부분은 무엇을 하는 부분인지 쉽게 알아보기 위해 메모를 할 때 사용할 수 있고, 혹은 문제가 있는 코드를 무력화할 때 사용하기도 한다. 주석에 대한 내용은 뒤에서 다시 살펴보게 될 것이다.

2) 처음 2줄의 주석은 파이썬에서 특별한 장치이다. 1행은 파이썬이 설치된 경로를 알려주어 터미널에서 파이썬 코드가 바로 실행될 수 있도록 한다. (이 부분 역시 다음에 따로 설명하겠다.) 2행은 이 코드의 문자가 UTF-8로 인코딩된 문자라는 것을 나타낸다. 주석등에 영문자, 숫자 등이 아닌 한글이나 한자, 일본어 등이 들어갈 때 파이썬에게 알파벳 말고 다른 문자가 있다는 것을 알려준다고 보면 된다.

3) Hello World! 를 출력하는 각각의 print 명령문이 있다. 두 개는 결과적으로 동일한 출력을 하지만 따옴표를 겹따옴표(“)를 썼는지 홑따옴표(‘)를 썼는지 차이가 있다. 이 따옴표의 차이는 다시 아래에서 볼 수 있다.

4) print 문에 아무 것도 넣지 않는다면 그냥 빈 줄을 출력하게 된다.

5) 20~21 행 두 줄은 따옴표의 용도를 잘 설명해주고 있다. 문자열은 따옴표 안에 들어가게 되므로 만약 문자열 내에 겹따옴표가 있다면 홑따옴표를, 홑따옴표가 있다면 겹따옴표를 써서 문자열을 감싸야 한다. (열고 닫는 따옴표의 쌍을 제대로 맞추기 위해서이다.)

6) 만약, 문장 내에 겹따옴표와 홑따옴표를 같이 써야 한다면 어떻게 해야 할까? 만약 “That’s “The GREATEST” program.” 이라고 쓰면 따옴표는 괄호의 짝처럼 행동하므로 “That’s “The GREATEST” program.” 으로 두 개의 문자열 사이에 The GREATEST가 들어가서 오류가 나게 된다. 이렇게 파이썬에서 사용하는 문법과 관련된 문자들은 따로 특별한 처리를 하지 않으면 문자열 내에서는 사용할 수 없다. 따라서 따옴표를 문자열의 시작과 끝을 알리는 용도가 아니라 글자 그대로의 따옴표로 인식하게 하기 위해서 ‘이스케이프 문자’라는 것을 사용한다. 이는 문자 앞에 역슬래쉬(\ : 윈도 운영체제에서는 원화 표시로 표시됨)를 붙여서 사용한다. 즉 \” 이라고 쓰면 문자열을 닫는 따옴표가 아니라 문자열 내에서 따옴표 한 글자로 인식한다.

7) 32~35행은 이런 이스케이프 문자를 사용하는 몇 가지 예를 보여준다. 이스케이프 문자를 표시하는 역슬래쉬는 문장 내에서 쓰이면 마찬가지로 역슬래쉬 두개를 붙여 하나의 문자로 표시하면 된다. 이스케이프 문자는 그 외에 특수한 문자들을 대체하기도 한다. \n은 “New line”의 의미로 문자열 내에서 줄바꿈을 넣어준다. 그리고 \t는 “Tab”으로 탭 키를 눌러 들여쓰기를 한 효과를 보여준다.

8) 파이썬에서는 “여러 줄의 텍스트”를 하나의 문자열로 만드는 방법이 있다. 바로 겹 따옴표를 세번 연달아 쓴 것을 문자열의 앞,뒤에 붙여주는 것이다. 이렇게 만든 문자열은 우리가 타이핑한 그대로를 보여주기에 적합하다. 즉 여러 줄의 문장을 출력해야 하는 경우에는, 이 방법을 사용하면 print 문을 반복하지 않고 한 번에 많은 양의 텍스트를 출력할 수 있다. 물론 이 경우에도 이스케이프 문자를 사용하여 들여쓰기나 줄바꿈을 넣는 것이 가능하다.

특히 “”” ~ “”” 로 감싼 경우에는 문자열의 시작과 끝이 연속되는 따옴표 세 개 이기 때문에 겹따옴표나 홑따옴표를 이스케이프 문자로 처리하지 않고도 사용할 수 있게 된다.