본문 바로가기

Python

(24)
6.3. for 회돌이로 순회하는 법 다른 모든 언어들처럼 파이썬에도 for 회돌이가 있습니다. 아직까지 보지 못한 유일한 이유는 파이썬이 다른 많은 것에 능하므로 그렇게 자주 필요하지 않았기 때문입니다. 다른 언어는 대부분 파이썬과 같은 강력한 리스트 데이터유형이 없습니다. 그래서 시작과 끝 그리고 증분을 지정하여 일정 범위의 정수나 문자를 지정하거나 기타 반복가능한 객체를 정의하려면 손수 수 많은 작업을 해야 합니다. 그러나 파이썬에서, for 회돌이는 단순히 리스트를 반복하며 지능형 리스트(list comprehensions)도 같은 방식으로 작동합니다. 예제 6.8. for 회돌이 소개 >>> li = ['a', 'b', 'e'] >>> for s in li: ① ... print s ② a b e >>> print "\n".join..
6.2. 파일 객체 작업 파이썬은 내장 open 함수가 있는데, 디스크에 있는 파일을 여는데 사용됩니다. open 함수는 파일 객체를 돌려줍니다. 이 객체에 있는 메쏘드와 속성으로 그 열린 파일를 조작하고 그에 관한 정보를 얻습니다. 예제 6.3. 파일 열기 >>> f = open("/music/_singles/kairo.mp3", "rb") ① >>> f ② >>> f.mode ③ 'rb' >>> f.name ④ '/music/_singles/kairo.mp3' ① open 메쏘드는 세 개의 매개 변수를 취할 수 있습니다: 파일이름과 모드 그리고 버퍼링 매개변수가 그것입니다. 오직 첫 번째 매개변수, 즉 파일이름만 필수입니다; 나머지 두 개는 선택적입니다. 지정되지 않으면 파일은 텍스트 모드로 읽기 전용으로 열립니다. 여기에서..
6.1. 예외 처리 다른 많은 프로그래밍 언어처럼 파이썬은 try...except 블록을 통하여 예외를 처리합니다. ☞ 파이썬은 try...except를 사용하여 예외를 처리하고 raise로 예외를 만들어 냅니다. 자바와 C++은 try...catch를 사용하여 예외를 처리하고 throw로 예외를 만들어 냅니다. 예외는 파이썬 곳곳에서 사용됩니다. 사실상 표준 파이썬 라이브러리의 모든 모듈에서 예외를 사용하고 이미 이 책을 통하여 자주 보셨듯이 파이썬 조차도 다른 많은 상황에서 예외를 일으킵니다. 사전에서 존재하지 않는 키에 접근하면 KeyError 예외가 일어난다. 리스트에서 존재하지 않는 값을 검색하면 ValueError 예외가 일어난다. 존재하지 않는 메쏘드를 호출하면 AttributeError 예외가 일어난다. 존재..
5.8. 클래스 속성 소개 이미 데이터 속성에 관하여 배웠습니다. 이는 클래스의 특정 실체가 소유한 변수들입니다. 파이썬은 또한 클래스 속성을 지원합니다. 이는 클래스 자체가 소유한 변수들입니다. 예제 5.17. 클래스 속성 소개 class MP3FileInfo(FileInfo): "ID3v1.0 MP3 태그를 저장한다" tagDataMap = {"title" : ( 3, 33, stripnulls), "artist" : ( 33, 63, stripnulls), "album" : ( 63, 93, stripnulls), "year" : ( 93, 97, stripnulls), "comment" : ( 97, 126, stripnulls), "genre" : (127, 128, ord)}>>> import fileinfo >>> f..
5.6. 특수한 클래스 메쏘드 파이썬은 보통의 클래스 메쏘드 외에도 수 많은 특수 메쏘드를 정의할 수 있습니다. (보통의 메쏘드처럼) 코드에서 직접적으로 호출되는 대신에 특수 메쏘드는 특별한 상황 또는 특정한 구문이 사용되면 여러분 대신 파이썬이 호출합니다. 앞 섹션에서 보았듯이 보통의 메쏘드는 클래스에 사전을 싸 넣는 정도는 훌륭하게 해 냅니다. 그러나 보통의 메쏘드 만으로는 충분하지 않습니다. 왜냐하면 메쏘드를 호출하는 것 말고도 사전으로 할 수 있는 일이 수 없이 많기 때문입니다. 초보자라면 명시적으로 요청하는 메쏘드가 포함되지 않은 구문을 가지고 항목을 얻고(get) 설정(set)할 수 있습니다. 바로 이곳에 특수한 클래스 메쏘드가 들어옵니다: 특수 클래스 메쏘드는 비-메쏘드-호출 구문을 메쏘드 호출에 짝짓는 방법을 제공합니다..
단축키 (config-keys.def) # IDLE reads several config files to determine user preferences. This # file is the default config file for idle key binding settings. # Where multiple keys are specified for an action: if they are separated # by a space (eg. action= ) then the keys are alternatives, if # there is no space (eg. action=) then the keys comprise a # single 'emacs style' multi-keystoke binding. The tk event specifie..
SyntaxError: Non-ASCII character 파이썬 소스에 한글이 있으면 다음과 같은 에러가 나게 됩니다: SyntaxError: Non-ASCII character '\xb0' in file ~ on line ~, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details Non-ASCII character (아스키 문자가 아닌 글자) 라는 것은, A~Z 0~9 등에 속하지 않은 글자라는 뜻입니다. 이때는 소스에 # -*- coding: cp949 -*- 이런 줄을 추가하면 됩니다. 한글 확장완성형 인코딩을 지정하는 것인데, 반드시 소스의 1번째 행이나 2번째 줄에 있어야 합니다. 3번째 줄이나 4번째 줄에 있으면 인식하지 못하고 계속 에러를 냅니다. 유닉스..
5.4. 클래스 실체화하기 클래스를 파이썬에서 실체화하는 일은 눈에 보이는 그대로 이해됩니다. 클래스를 실체화하려면 그냥 __init__ 메쏘드에 정의된 인자들을 건네고 클래스를 마치 함수처럼 호출하면 됩니다. 반환 값은 새로 만들어진 객체가 될 것입니다. 예제 5.7. FileInfo 실체 만들기 >>> import fileinfo >>> f = fileinfo.FileInfo("/music/_singles/kairo.mp3") ① >>> f.__class__ ② >>> f.__doc__ ③ 'store file metadata' >>> f ④ {'name': '/music/_singles/kairo.mp3'} ① (fileinfo 모듈에 정의된) FileInfo 클래스의 실체를 하나 만들고 그 새로 만든 실체를 변수 f에 할당..