추천의 글 = 4 베타 리뷰어 글 = 6 지은이 글 = 10 감사의 글 = 11 학습 로드맵 = 12 CHAPTER 1 코딩으로의 초대 1.1. 코딩, 이것 참 재미있는데 말로 표현할 수도 없고… = 24 1.2. 문제 해결 능력을 키우는 코딩 = 25 1.3. 아이디어를 현실로 = 26 1.4. 누구나 할 수 있는 코딩 = 27 1.5. 어떻게 시작하면 좋을까 = 27 CHAPTER 2 코딩을 배우기 전에 읽는 컴퓨터 구조론 2.1. 폰 노이만 구조 = 30 2.1.1. 중앙 처리 장치 = 31 2.1.2. 기억 장치 = 32 2.1.3. 입력/출력 장치 = 33 2.2. 운영체제와 애플리케이션 = 35 2.3. 소프트웨어는 무엇으로 만드는가 = 35 2.4. 파이썬 프로그래밍 언어 = 37 CHAPTER 3 파이썬 프로그래밍 준비와 시작 3.1. 파이썬 설치하기 = 42 3.2. IDLE의 두 가지 모드 = 46 3.2.1. 파이썬 셸로 코딩하기 = 47 3.2.2. 코드 편집기로 코딩하기 = 48 3.2.3. 이 책에서 파이썬 셸과 코드 편집기를 사용하는 예제를 구분하는 방법 = 51 3.3. 소스코드에 설명 달기 : # = 52 CHAPTER 4 데이터 다루기: 수와 텍스트와 비트 4.1. 변수 = 54 4.2. 수 다루기 = 57 4.2.1. 정수 = 57 4.2.2. 실수 = 64 4.2.3. 복소수 = 70 4.2.4. math 모듈을 이용한 계산 = 72 4.3. 텍스트 다루기 = 78 4.3.1. 문자열 메소드 = 82 4.4. 수에서 텍스트로, 텍스트에서 수로 = 86 4.5. 비트 다루기 = 88 4.5.1. 시프트 연산자 = 88 4.5.2. 비트 논리 연산자 = 92 CHAPTER 5 데이터 다루기 : 리스트와 튜플과 딕셔너리 5.1. 리스트 = 100 5.1.1. 리스트 메소드 = 102 5.2. 튜플 = 104 5.2.1. 패킹과 언패킹 = 108 5.2.2. 튜플 메소드 = 109 5.3. 딕셔너리 = 110 CHAPTER 6 프로그램의 흐름 제어하기 6.1. 흐름 제어를 시작하기 전에 = 116 6.1.1. bool 자료형 = 116 6.1.2. 논리 연산자 = 116 6.1.3. 흐름 제어문과 조건문 = 118 6.1.4. 코드블록과 들여쓰기 = 119 6.1.5. 비교 연산자 = 120 6.2. 분기문 = 122 6.2.1. if문 = 123 6.3. 반복문 = 129 6.3.1. while문 = 129 6.3.2. for문 = 132 6.3.3. continue와 break로 반복문 제어하기 = 137 CHAPTER 7 함수로 코드 간추리기 7.1. 이 단원을 시작하기에 앞서 알아둬야 하는 용어 = 142 7.1.1. 정의 = 142 7.1.2. 호출과 반환 = 142 7.2. 함수 정의하기 = 143 7.3. 매개변수를 입력받는 여러 가지 방법 = 144 7.3.1. 기본값 매개변수와 키워드 매개변수 = 145 7.3.2. 가변 매개변수 = 147 7.4. 호출자에게 반환하기 = 149 7.5. 함수 밖의 변수, 함수 안의 변수 = 152 7.6. 자기 스스로를 호출하는 함수 : 재귀 함수 = 154 7.7. 함수를 변수에 담아 사용하기 = 156 7.8. 함수 안의 함수 : 중첩 함수 = 158 7.9. pass : 구현을 잠시 미뤄두셔도 좋습니다 = 159 CHAPTER 8 모듈과 패키지 8.1. 모듈 = 164 8.1.1. 두 개의 소스 파일로 만드는 하나의 프로그램 예제 = 164 8.1.2. import에 대해 = 166 8.1.3. 모듈을 찾아서 = 169 8.1.4. 메인 모듈과 하위 모듈 = 171 8.2. 패키지 = 174 8.2.1. _init_.py에 대해 = 175 8.3. site-packages에 대해 = 178 CHAPTER 9 클래스 9.1. 객체 지향 프로그래밍 = 182 9.1.1. 객체와 클래스 = 182 9.1.2. 객체 지향 프로그래밍을 해야 하는 이유 = 184 9.2. 클래스의 정의 = 185 9.2.1. _init_() 메소드를 이용한 초기화 = 189 9.2.2. self에 대해 = 194 9.2.3. 정적 메소드와 클래스 메소드 = 195 9.2.4. 클래스 내부에게만 열려있는 프라이빗 멤버 = 200 9.3. 상속 = 201 9.3.1. super() = 207 9.3.2. 다중 상속 = 209 9.3.3. 오버라이딩 = 212 9.4. 데코레이터 : 함수를 꾸미는 객체 = 213 9.5. for문으로 순회를 할 수 있는 객체 만들기 = 217 9.5.1. 이터레이터와 순회 가능한 객체 = 218 9.5.2. 제네레이터 = 219 9.6. 상속의 조건 : 추상 기반 클래스 = 221 CHAPTER 10 오류를 어떻게 다뤄야 할까 10.1. 예외 = 226 10.2. try∼except로 예외 처리하기 = 227 10.2.1. 복수 개의 except절 사용하기 = 228 10.2.2. try절을 무사히 실행하면 만날 수 있는 else = 231 10.2.3. 어떤 일이 있어도 반드시 실행되는 finally = 232 10.3. Exception 클래스 = 234 10.4. 우리도 예외 좀 일으켜보자 = 236 10.5. 내가 만든 예외 형식 = 239 CHAPTER 11 파일에 데이터 읽고 쓰기 11.1. 열라, 읽으라(쓰라), 닫으라 = 244 11.1.1. 자원 누수 방지를 돕는 with∼as = 246 11.1.2. with문의 비밀 : 컨텍스트 매니저 = 246 11.1.3. open() 함수 다시 보기 = 250 11.2. 텍스트 파일 읽기/쓰기 = 252 11.2.1. 문자열을 담은 리스트를 파일에 쓰는 writelines() 메소드 = 253 11.2.2. 줄 단위로 텍스트를 읽는 readline()과 readlines() 메소드 = 254 11.2.3. 문자 집합과 인코딩 = 256 11.3. 바이너리 파일 다루기 = 260 CHAPTER 12 뻐꾸기 시계 트위터 봇 만들기 12.1. threading.Timer = 268 12.1.1. Timer 객체의 시작과 종료 = 269 12.1.2. Timer 콜백 함수에 매개 변수를 넘기는 방법 = 271 12.2. OAuth 이해하기 = 273 12.3. 트위터로 애플리케이션 관리 페이지에서 컨슈머 키/액세스 토큰 얻기 = 276 12.4. Tweepy: 파이썬을 위한 트위터 라이브러리 = 280 12.4.1. Tweepy 설치 = 280 12.4.2. Tweepy 테스트 = 281 12.5. 뻐꾸기 시계 트위터 봇 코딩하기 = 283 CHAPTER 13 네트워크 프로그래밍 13.1. 네트워크 프로그래밍에 앞서 알아둬야 할 기초 = 288 13.1.1. 인터넷의 유래 = 288 13.1.2. TCP/IP 스택 = 291 13.1.3. TCP/IP의 주소 체계 : IP 주소 = 295 13.1.4. 포트 = 296 13.1.5. TCP/IP의 동작 과정 = 297 13.2. socket과 TCPServer를 이용한 TCP/IP 프로그래밍 = 298 13.3. 흐르는 패킷 = 305 13.3.1. 프로토콜 설계와 네트워크 애플리케이션 프로그래밍 예제 = 308 CHAPTER 14 wxPython을 이용한 그래픽 사용자 인터페이스 14.1. wxPython 소개 = 330 14.2. wxPython-Phoenix 설치 = 331 14.3. wxPython 애플리케이션의 시작과 끝, wx.App 클래스 = 332 14.3.1. wx.App.Oninit() 메소드 = 334 14.4. GUI의 창틀: wx.Frame 클래스 = 336 14.4.1. wx.Frame의 파생 클래스로 윈도우 만들어 띄우기 = 336 14.4.2. wx.Frame의 이벤트와 이벤트 처리기 연결하기 = 338 14.4.3. wx.Frame의 속성 조정하기 = 340 14.4.4. wx.Frame 위에 위젯 올리기 = 345 14.5. 컨테이너 위젯 wx.Panel과 위젯 배치 도우미 wx.Sizer = 347 14.5.1. 컨테이너 위젯의 대표 선수 wx.Panel = 347 14.5.2. 위젯 배치 도우미 : wx.Sizer와 그 파생 클래스의 이해 = 350 14.6. 다양한 위젯 사용해보기 = 360 14.6.1. wx.MenuBar와 wx.Menu. wx.Menultem = 360 14.6.2. wx.Static Text와 wx.TextCtrl = 363 14.6.3. wx.RadioButton = 367 14.6.4. wx.CheckBox = 370 14.6.5. wx.ListBox와 wx.ComboBox = 373 14.6.6. wx.TreeCtrl = 376 14.6.7. wx.Slider와 wx.Gauge = 379 14.6.8. wx.Dialog = 381 CHAPTER 15 SQLite로 만드는 나만의 140자 일기장 15.1. 데이터베이스에 대해 = 386 15.1.1. 데이터베이스의 역사 = 386 15.1.2. DBMS = 388 15.1.3. 관계형 데이터베이스의 기본 구조 = 388 15.1.4. SQL 익히기 = 389 15.2. SQLite의 파이썬 API = 397 15.2.1. 커넥션 열고 닫기 = 398 15.2.2. 커서로 작업하기 = 398 15.3. 140자 일기장 만들기 = 405 15.3.1. 140자 일기장이 사용할 테이블 구조 = 405 15.3.2. 사용자 인터페이스 = 406 15.3.3. 140자 일기장 코드 = 407 CHAPTER 16 파이썬으로 이미지 요리하기 16.1. 이미지 매직 = 422 16.1.1. 이미지 매직 설치 = 422 16.1.2. Wand : 이미지 매직 파이썬 API 라이브러리 = 424 16.1.3. Wand 설치 = 425 16.2. Wand를 이용한 이미지 편집 = 425 16.2.1. 이미지 파일 형식 바꾸기 = 427 16.2.2. 이미지 크기 바꾸기 = 428 16.2.3. 이미지 자르기 = 430 16.2.4. 이미지 회전 = 432 16.2.5. 이미지 뒤집기 = 434 16.2.6. 이미지에 텍스트와 도형 넣기 = 435 16.2.7. 이미지 명도, 채도, 색상 변경하기 = 438 16.2.8. 이미지 합성 = 441 16.2.9. 워터 마크 = 442 CHAPTER 17 pygame으로 게임 만들기 17.1. pygame 소개 = 446 17.1.1. pygame 라이브러리 설치 = 446 17.1.2. 게임 루프 = 447 17.1.3. pygame을 사용하는 방법 = 448 17.1.4. 처음 만들어보는 pygame 애플리케이션 = 450 17.1.5. pygame에서의 사용자 입력 처리 = 451 17.1.6. pygame으로 그리기 = 456 17.1.7. pygame으로 오디오 재생하기 = 463 17.2. 스프라이트의 이해 = 464 17.2.1. pygame.sprite.Sprite와 pygame.sprite.Group = 466 17.2.2. 스프라이트간의 충돌 처리 = 472 17.3. 투석기 게임 = 476 17.3.1. 게임 컨셉 및 구조 = 476 17.3.2. 게임에 사용할 상수 정의 = 478 17.3.3. 스프라이트 클래스 정의 : 배경, 투석기, 돌, 외계인, 폭발 = 478 17.3.4. 메인 모듈(게임 루프) = 487 찾아보기 = 494