본문 바로가기

개발자/파이썬 Python

파이선 에러와 예외처리. 리얼파이선 23 에러와 예외 지금까지 에러 메시지가 언급되지는 않았지만, 예제들을 직접 해보았다면 아마도 몇몇 개를 보았을 것입니다. (적어도) 두 가지 구별되는 에러들이 있습니다; 문법 에러 와 예외. 문법 에러 문법 에러는, 파싱 에러라고도 알려져 있습니다, 아마도 여러분이 파이썬을 배우고 있는 동안에는 가장 자주 만나는 종류의 불평일 것입니다: >>> while True print('Hello world') File "", line 1 while True print('Hello world') ^ SyntaxError: invalid syntax 파서는 문제가 되는 줄을 다시 보여주고 줄에서 에러가 감지된 가장 앞의 위치를 가리키는 작은 〈화살표’를 표시합니다. 에러는 화살표 앞에 오는 토큰이 원인입니다 (또는 적어..
파이선 표준 라이브러리 2. 리얼파이선 22 표준 라이브러리 둘러보기 2. 리얼파이선 22 이 두 번째 둘러보기는 전문 프로그래밍 요구 사항을 지원하는 고급 모듈을 다루고 있습니다. 이러한 모듈은 작은 스크립트에서는 거의 사용되지 않습니다. 출력 포매팅 reprlib 모듈은 크거나 깊게 중첩된 컨테이너의 축약 된 디스플레이를 위해 커스터마이즈된 repr() 의 버전을 제공합니다: >>> import reprlib >>> reprlib.repr(set('supercalifragilisticexpialidocious')) "{'a', 'c', 'd', 'e', 'f', 'g', ...}" pprint 모듈은 인터프리터가 읽을 수 있는 방식으로 내장 객체나 사용자 정의 객체를 인쇄하는 것을 보다 정교하게 제어할 수 있게 합니다. 결과가 한 줄보다 길면 ..
파이선 표준 라이브러리 1. 리얼파이선 21 표준 라이브러리 둘러보기 1. 리얼파이선 21 표준 라이브러리 둘러보기 운영 체제 인터페이스 os 모듈은 운영 체제와 상호 작용하기 위한 수십 가지 함수들을 제공합니다: >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python310' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # Run the command mkdir in the system shell 0 from os import * 대신에 import os 스타일을 사용해야 합니다. 그래야 os.open() 이 내장 open() 을..
파이선 클래스 기초 3. 리얼파이선 20 파이선 클래스 기초 3. 리얼파이선 20 상속 물론, 상속을 지원하지 않는다면 언어 기능은 《클래스》라는 이름을 붙일만한 가치가 없을 것입니다. 파생 클래스 정의의 문법은 이렇게 생겼습니다: class DerivedClassName(BaseClassName): . . . 이름 BaseClassName 은 파생 클래스 정의를 포함하는 스코프에 정의되어 있어야 합니다. 베이스 클래스 이름의 자리에 다른 임의의 표현식도 허락됩니다. 예를 들어, 베이스 클래스가 다른 모듈에 정의되어 있을 때 유용합니다: class DerivedClassName(modname.BaseClassName): 파생 클래스 정의의 실행은 베이스 클래스와 같은 방식으로 진행됩니다. 클래스 객체가 만들어질 때, 베이스 클래스가 기억됩니다...
파이선 클래스 기초 2. 리얼파이선 19 파이선 클래스 기초 2. 리얼파이선 19 클래스와의 첫 만남 클래스는 약간의 새 문법과 세 개의 객체형과 몇 가지 새 개념들을 도입합니다. 클래스 정의 문법 클래스 정의의 가장 간단한 형태는 이렇게 생겼습니다: class ClassName: . . . 함수 정의(def 문)처럼, 클래스 정의는 어떤 효과가 생기기 위해서는 먼저 실행되어야 합니다. (상상컨대 클래스 정의를 if 문의 분기나 함수 내부에 놓을 수 있습니다) 실재적으로, 클래스 정의 내부의 문장들은 보통 함수 정의들이지만, 다른 문장들도 허락되고 때로 쓸모가 있습니다 — 나중에 이 주제로 돌아올 것입니다. 클래스 내부의 함수 정의는 보통, 메서드 호출 규약의 영향을 받은, 특별한 형태의 인자 목록을 갖습니다. — 다시, 이것은 뒤에서 설명됩니..
파이선 클래스 기초 1. 리얼파이선 18 9. 클래스 클래스는 데이터와 기능을 함께 묶는 방법을 제공합니다. 새 클래스를 만드는 것은 객체의 새 데이터 형을 만들어서, 그 형의 새 인스턴스를 만들 수 있도록 합니다. 각 클래스 인스턴스는 상태를 유지하기 위해 그 자신에게 첨부된 어트리뷰트를 가질 수 있습니다. 클래스 인스턴스는 상태를 바꾸기 위한 (클래스에 의해 정의된) 메서드도 가질 수 있습니다. 다른 프로그래밍 언어들과 비교할 때, 파이썬의 클래스 메커니즘은 최소한의 새로운 문법과 개념을 써서 클래스를 추가합니다. C++과 모듈라-3에서 발견되는 클래스 메커니즘을 혼합합니다. 파이썬 클래스는 객체 지향형 프로그래밍의 모든 표준 기능들을 제공합니다: 클래스 상속 메커니즘은 다중 베이스 클래스를 허락하고, 자식 클래스는 베이스 클래스나 클래스들..
파이선 모듈과 패키지 사용하는 법. 리얼파이선 17 모듈은 변수, 연산, 제어, 함수 중에서 어디에 속할까요? 함수입니다. 모듈 자체에 변수, 연산, 제어, 함수 모두 들어있는 변수와 실행문의 집합일 뿐입니다. 파이선 모듈과 패키지 사용하는 법. 리얼파이선 17 모듈 파이썬 인터프리터를 종료한 후에 다시 들어가면, 여러분이 만들었던 정의들이 사라집니다 (함수나 변수들). 그래서, 좀 긴 프로그램을 쓰고자 한다면, 대신 인터프리터 입력을 편집기를 사용해서 준비한 후에 그 파일을 입력으로 사용해서 실행하는 것이 좋습니다. 이렇게 하는 것을 스크립트를 만든다고 합니다. 프로그램이 길어짐에 따라, 유지를 쉽게 하려고 여러 개의 파일로 나누고 싶을 수 있습니다. 여러 프로그램에서 썼던 편리한 함수를 각 프로그램에 정의를 복사하지 않고도 사용하고 싶을 수도 있습니다..
파이선 자료구조 딕셔너리 dictionary 와 루프 테크닉, 리얼파이선 16 파이썬에 내장된 또 하나의 유용한 자료형은 딕셔너리입니다 (매핑 형 - dict를 보세요). 딕셔너리는 종종 다른 언어들에서 《연관 메모리(associative memories)》 나 《연관 배열(associative arrays)》 의 형태로 발견됩니다. 숫자들로 인덱싱 되는 시퀀스와 달리, 딕셔너리는 키로 인덱싱 되는데, 모든 불변형을 사용할 수 있습니다; 문자열과 숫자들은 항상 키가 될 수 있습니다. 파이선 자료구조 딕셔너리 dictionary와 루프 테크닉, 리얼파이선 16 튜플이 문자열, 숫자, 튜플들만 포함하면, 키로 사용될 수 있습니다; 튜플이 직접적이나 간접적으로 가변 객체를 포함하면, 키로 사용될 수 없습니다. 리스트는 키로 사용할 수 없는데, 리스트는 인덱스 대입, 슬라이스 대입, ap..