(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 모듈을 포함시킴 >>> dir(sys) # sys 모듈에 포함된 symbol list 를 모두 보여줌. ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions'] >>> help(sys) # sys 모듈에 대한 설명을 보여주는 document |
다음과 같이 프로그램에서 사용할 수도 있습니다. sys 모듈의 argv 를 사용하는 예제입니다. c 나 c++ 프로그램에서 argument 를 사용해보셨다면 이해가 갈 것입니다.
프로그램 인자 중에서 프로그램 이름(argv[0]) 다음의 인자(argv[1])를 Hello 함수에 전달한 것입니다.
#!/usr/bin/python import sys def Hello(name): # argument 를 별도로 선언할 필요도 없다. |
만약 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 |
문제없이 실행되었군요. 프로그램 실행 시에 해당 라인이 수행이 되지만 않는다면 오류가 발생되지 않습니다. 재미있죠 ? ^^
출처 : http://cloudrain21.tistory.com/entry/내장모듈-import-block-들여쓰기indentation
'Python' 카테고리의 다른 글
python list2 (0) | 2014.05.02 |
---|---|
python list (0) | 2014.05.02 |
python string (0) | 2014.05.02 |
python interpreter (0) | 2014.05.02 |
python 언어란 (0) | 2014.05.02 |