파이썬(python) – 내장모듈 import, block 들여쓰기(indentation)
python 강의는 오랜만이네요.
강의할 것들이 많으니 한 종류의 강의를 자주자주하는 것이 때로는 조금 시간이 부족해서 힘드네요. ^^
오늘은 몇가지 잡다구리한 것을 배워보도록 하겠습니다. 하지만, 여러분이 꼭 알고 계셔야할 것들입니다.
(1) 모듈(module) import
프로그램 시작전에 "import 모듈이름"을 수행하면 해당 모듈이 제공하는 기능을 사용할 수 있습니다.
그리고, 그 모듈이 제공하는 기능이 무엇인지 List 를 보고 싶으면 dir 을 사용하면 됩니다.
그 기능에 대한 document 를 보고 싶으면 help 를 사용하면 됩니다.
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. >>> import sys # sys 모듈을 포함시킴 ['__displayhook__', '__doc__', '__excepthook__', '__name__', >>> help(sys) # sys 모듈에 대한 설명을 보여주는 document |
다음과 같이 프로그램에서 사용할 수도 있습니다. sys 모듈의 argv 를 사용하는 예제입니다. c 나 c++ 프로그램에서 argument 를 사용해보셨다면 이해가 갈 것입니다.
프로그램 인자 중에서 프로그램 이름(argv[0]) 다음의 인자(argv[1])를 Hello 함수에 전달한 것입니다.
#!/usr/bin/python import sys # argument 를 별도로 선언할 필요도 없다. def main(): |
만약 import sys 를 주석처리(#)하면 "NameError: global name 'sys' is not defined" 라는 에러를 뱉어냅니다.
python 인터프리터를 실행하여 내장모듈인 sys 및 os 의 symbol 및 함수 list 들을 dir 로 확인해보시고 한번씩 수행해 보시기 바랍니다.
(2) python 들여쓰기
python 은 소괄호, 중괄호 등의 block 구분용 괄호들을 사용할 필요가 없습니다. 들여쓰기(indentation)가 그 역할을 대신합니다. if 문에서 사용하는 괄호도 사용할 필요가 없습니다.
다음의 소스를 보시죠.
#!/usr/bin/python |
Hello 함수를 보면 if else 구문이 같은 수준의 들여쓰기를 했고, if block 안의 내용들은 또 한번 들여쓰기가 되어 있는 것을 볼 수 있습니다. 그리고, if 구문에서는 name == 'Alice' 와 같이 괄호 없이 비교 구문만 넣으면 됩니다.
(3) Line by Line 실행되는 인터프리터
python 은 line by line 으로 즉석에서 실행해나가는 인터프리터입니다. c 나 c++, java 처럼 컴파일이라는 단계를 거치면서 구문의 오류 등을 점검하지 않습니다.
한 line 씩 바로 실행시키면서 그 때 구문 오류나 변수 오류 등을 점검합니다.
그렇다면, 다음의 코드를 실행하면 어떻게 될까요 ?
#!/usr/bin/python |
위의 소스를 c 나 c++ 처럼 컴파일을 한다면 아마 not defined 오류가 떨어질 것입니다. 하지만, python 은 다르죠. 아래 실행결과를 볼까요 ?
$ sh> ./hello.py Alice Alert : Alice Mode |
문제없이 실행되었군요. 프로그램 실행 시에 해당 라인이 수행이 되지만 않는다면 오류가 발생되지 않습니다. 재미있죠 ? ^^
다음 시간에는 가장 중요한 부분 중의 하나인 string 다루는 법에 대해서 공부해 보겠습니다.