파이썬 인터프리터 (Python Interpreter) 사용하기

Python 은 Interpreter 언어라고 말씀드렸습니다.
인터프리터는 고급 언어로 작성된 원시코드 명령어들을 한번에 한 줄씩 읽어들여서 실행하는 프로그램입니다. 코드를 기계어로 변경하는 컴파일러와는 많이 다르죠.

그래서, 한번에 한줄씩 바로바로 해석하여 실행하여 주는 인터프리터 프로그램이 별도로 필요합니다. 그것이 python 입니다.

설명보다는 직접 해보는게 이해가 되실겁니다.

dplee@dplee-VirtualBox:~$ python

Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 

[GCC 4.6.1] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

Linux 나 Unix 를 사용하신다면 python 이라고 타이핑하면 바로 시스템에 내장되어 있는 python interpreter 가 실행되고 command 또는 Code 를 입력할 수 있는 환경이 됩니다. 마치 쉘 상에서 쉘코드를 짤 수 있듯이 이 상태에서 바로 coding 을 해도 됩니다.
윈도우 환경이라면 python interpreter 를 별도로 설치를 하셔야합니다.
설치 과정같은건 제 강의에서 다루지 않아도 다른 분들이 많이 다루셨을테니 그냥 건너뛰겠습니다.

그러면, python interpreter 환경에서 몇가지를 제 맘대로 수행해보겠습니다.

(1) 변수의 값 Assign
>>> a = 6
>>> a
6
>>> print a
6

>>> a = "okay"
>>> a
okay

(2) 문자열 길이

>>> a = "okay"
>>> len(a)
4

(3) 대소문자 구분

>>> A
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'A' is not defined

(4) 문자열 합침

>>> 'hello' + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> 'hello' + '1'
'hello1'
>>> 
>>> 'hello' + str(1)

'hello1'

>>> a='hello.'
>>> b='dplee'
>>> a+b
'hello.dplee'
>>> 1+2
3
>>> '1'+'2'
'12'
>>> str(1) + str(2)
'12'
(5) 변수의 데이터형 알아내기
>>> a='hello'
>>> type(a)
<type 'str'>

(6) Interpreter 끝내기

>>> quit
Use quit() or Ctrl-D (i.e. EOF) to exit
>>>

(1) 변수에 값을 입력할 때는 변수에 대한 별도 선언을 할 필요없이 그때그때 필요한 변수이름을
정하고 바로 값을 Assign 하면 됩니다. 어떤 type 이건 상관없이 변수명에 아무값이나 대입하면
해당 변수는 대입한 값에 맞는 데이터형의 포인터 변수가 된다.
어떤 변수에 담긴 값을 보고 싶을 때는 변수이름만 치거나 print 변수이름을 치면 됩니다.

(2) a 라는 변수에 문자열을 넣고, 해당 문자열의 길이를 알고 싶을 경우 len()이라는 내장(Built-in)
함수를 사용하면 됩니다. 어떤 내장함수들을 지원하는지는 나중에 자세히 알아보도록 하겠습니다.

(3) python 에서는 대소문자를 구분(case-sensitive)합니다.
A 라는 변수는 값이 assign 된 적도 선언된 적도 없기 때문에 에러가 발생합니다.

(4) 문자형과 숫자형을 곧바로 연산할 수는 없습니다. str 내장함수를 이용하여 형변환을 해주거나
'' 를 붙여서 숫자형을 같은 문자형으로 변환한 후 연산해야 합니다.
문자열끼리 합치고자 할 경우 C 처럼 strcat 이나 sprintf 등 골치아픈 함수들을 사용할
필요도 없습니다. a+b 처럼 그냥 + 연산자를 사용하면 됩니다.

(5) 특정 변수가 string 형인지, list 형인지, file 형인지 등 변수의 데이터형을 알고 싶으면 내장명령어 type 을 사용하면 됩니다. 또는, 해당 변수를 print 해보면 데이터형에 따라 보여주는 형식이 다르므로 이를 이용해서 구분해도 됩니다.

(6) Interpreter 를 마치고 싶을 때는 quit 나 exit 같은 명령어가 아닌 ctrl+D 를 입력하여 끝내야 합니다.

아주 사용이 편리하고 간단하죠 ?
그런데, 위와 같이 대화형 말고 일반 프로그램처럼 파일로 미리 코드를 저장하여 이를 실행할 수는 없을까요 ?
당연히 할 수 있습니다.

#!/usr/bin/python

def func():
  print "Hello"
if __name__ == '__main__':
  func()

가장 기초적인 프로그램입니다. 위와 같이 hello.py 파일(파일이름은 아무래도 상관없습니다)을 작성한 후 아래와 같이 실행해 봅니다.

$ python hello.py
Hello
$ chmod 700 hello.py
$ ./hello.py
Hello

쉘프로그램과 실행방법은 똑같군요. 첫줄에 있는 #!/usr/bin/python 정의가 없다면 ./hello.py 와 같이 실행할 수는 없겠죠. 어떤 Interpreter 로 이 프로그램을 실행할지 알 수 없을테니까요. (기본적으로는 쉘 인터프리터로 코드를 실행할테니 에러가 날겁니다.)

위의 코드를 잠깐 이해해볼까요 ?

(1) 첫줄은 실행할 Interpreter 를 지정해주는 라인이라고 말씀드렸고,

(2) def func() 은 func 라는 함수를 정의하는 것입니다. 몇가지 룰이 있는데요.
가. 함수를 정의할 때는 def 라는 예약어를 사용합니다.
나. 반드시 끝에 : 를 붙여주어야 합니다.
다. 함수의 정의 내용(print "Hello")은 한줄이라도 들여쓰기를 해야 합니다.
나중에 배우겠지만 python 은 줄맞추기나 들여쓰기가 매우 중요합니다.

(3) if __name__ == '__main__' 이 부분은 지금은 일단 프로그램 실행을 시작하려면 이렇게 한다는
것만 알아두면 됩니다. 뒤에서 모듈에 대해 배우게 되면 자연스럽게 알게 될 것입니다.

아주 기초적인 것은 대충 아시겠죠 ?
다음 시간에는 Java 처럼 외부 모듈을 import 라는 예약어를 통해 모듈 기능을 이용하거나, string 들을 자유자재로 어떻게 구워삶는지 한번 배워보겠습니다.

You may also like...

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x