머리말 / iii
차례 / iv
제1장 파이썬 프로그래밍 개요 / 1
1.1 파이썬 프로그래밍 / 1
1.1.1 파이썬 자료 / 2
1.1.2 파이썬의 자료 처리 / 2
1.1.3 사용자정의 함수와 클래스 / 3
1.1.4 모듈, 패키지(라이브러리) / 3
1.2 파이썬 배우기 / 4
1.2.1 파이썬 내장함수 / 4
1.2.2 파이썬 키워드 / 5
1.3 파이썬 개발 툴 / 6
1.3.1 파이썬 IDLE / 6
1.3.2 주피터노트북 / 7
제2장 파이썬 기초자료 : 숫자와 문자열 / 9
2.1 파이썬 표준입력과 표준출력 / 9
2.2 실수 및 연산 / 10
2.2.1 정수 연산 / 13
2.2.2 숫자 연산의 우선 순위 / 13
2.3 수의 비교 / 16
2.4 math 모듈 / 18
2.5 수학함수 / 20
2.6 문자열 기초 / 21
2.6.1 문자 인코딩 / 21
2.6.2 단문자 / 22
2.6.3 일반적인 문자열 생성 / 23
2.6.4 문자열 연산 / 27
2.6.5 이스케이프 문자 / 28
2.7 변수와 대입 / 30
2.7.1 파이썬 식별자 / 32
2.7.2 None과 대입 / 34
2.7.3 다중대입 / 35
2.7.4 변수와 주소 / 37
2.8 사용자가 입력한 값을 변수에 대입하기 / 38
2.8.1 표준입력함수 input() / 38
2.9 서식을 포함한 문자열 / 40
2.9.1 문자열 메소드 format() / 41
2.9.2 C언어 출력 양식 / 45
제3장 문자열 / 47
3.1 문자열 생성과 문자열 연산 / 47
3.2 문자열의 인덱스, 인덱싱, 슬라이싱 / 48
3.2.1 문자열의 인덱스와 인덱싱 / 48
3.2.2 문자열 슬라이싱 / 49
3.2.3 연속적으로 추출 : 문자열변수[a:b] / 50
3.2.4 등간격으로 추출 : 문자열변수[a:b:h] / 51
3.3 문자열 메소드 / 52
제4장 파이썬 묶음자료 / 57
4.1 리스트 / 58
4.1.1 리스트 연산 / 61
4.1.2 리스트의 인덱스, 인덱싱, 슬라이싱 / 62
4.1.3 리스트에서 항목의 추가, 삭제, 수정 / 69
4.1.4 리스트 정렬 / 78
4.1.5 중첩 리스트 / 84
4.1.6 2차원 리스트 / 85
4.1.7 3차원리스트 / 86
4.2 튜플 / 87
4.3 딕셔너리 / 90
4.3.1 딕셔너리 생성 / 91
4.3.2 키-값 쌍 추가, 삭제, 값 변경 / 96
4.3.3 딕셔너리 멤버쉽 조사 / 97
4.3.4 딕셔너리 메소드 / 97
4.3.5 딕셔너리 정렬 / 99
4.4 셋(set) / 100
4.4.1 셋 생성 / 100
4.4.2 원소 추가 및 삭제 / 101
4.4.3 파이썬 집합연산 메소드 / 103
4.4.4 셋 정렬 / 106
4.5 항목이 숨겨진 파이썬 묶음자료 / 106
4.5.1 range 객체 / 106
4.5.2 zip 객체 / 109
4.5.3 enumerate 객체 / 110
제5장 불 자료와 논리연산 / 113
5.1 불 자료와 명제 / 113
5.2 내장함수 bool() / 114
5.3 파이썬에서의 관계연산 / 115
5.4 불 연산과 합성명제 / 120
5.4.1 or과 논리합(double vertical bar, double vertical slash) / 120
5.4.2 and와 논리곱 / 121
5.4.3 not과 논리부정 / 123
제6장 선택 실행 / 127
6.1 조건식과 블록 / 127
6.1.1 조건식 / 127
6.1.2 블록과 들여쓰기 / 128
6.2 if문 / 128
6.3 if-else문 / 129
6.4 중첩 if문 / 130
6.5 if-elif-else문 / 133
제7장 반복실행 / 141
7.1 for문 / 142
7.1.1 정수 등차수열에 대한 반복 / 144
7.1.2 누적합 계산 / 146
7.1.3 제어변수와 무관한 for문 / 151
7.1.4 이터러블에서의 순회 반복 / 154
7.1.5 중첩for문 / 163
7.1.6 2차원리스트와 for문 / 167
7.1.7 시퀀스 자료의 인덱스를 사용한 반복 / 169
7.2 while문 / 174
7.3 실행순서 이동 / 176
7.3.1 break문 / 177
7.3.2 continue문 / 178
7.3.3 pass / 178
7.4 while 무한루프 / 179
7.5 수열의 항과 극한 계산 / 181
7.5.1 수열의 항 계산 / 181
7.5.2 수열의 극한 / 183
7.6 컴프리헨션 / 189
7.6.1 리스트 컴프리헨션 / 189
7.6.2 딕셔너리 컴프리헨션 / 193
7.6.3 셋 컴프리헨션 / 194
제8장 파이썬 함수 / 195
8.1 함수란? / 195
8.2 파이썬 함수 작성과 일반 호출 / 196
8.2.1 실수값을 갖는 수학 함수 / 197
8.2.2 입력 또는 출력이 파이썬 자료인 함수 / 202
8.2.3 키워드인자를 사용하는 함수 / 206
8.3 반환값이 여러 개인 함수 / 208
8.4 함수 호출 / 210
8.5 반환값 또는 인자가 없는 함수 / 213
8.5.1 반환값이 없는 함수 / 213
8.5.2 인자가 없는 함수 / 214
8.6 전역변수와 지역변수 / 215
8.6.1 지역변수 / 215
8.6.2 전역변수 / 216
8.7 가변인자를 사용한 함수 정의 / 218
8.8 가변키워드 인자를 사용한 함수 정의 / 219
8.9 람다(lambda) 함수 / 220
8.10 사용자 정의함수를 활용하는 파이썬 내장함수 / 221
8.10.1 자료 정렬: sorted() / 221
8.10.2 자료 일괄 조작: map() / 224
8.10.3 자료 선택: filter() / 225
8.11 파이썬 내장함수 / 226
제9장 파이썬 클래스 / 229
9.1 클래스 / 229
9.2 클래스 작성 문법 / 230
9.2.1 클래스 생성 및 관련정보 확인 / 231
9.2.2 객체 생성 / 231
9.2.3 객체에 속성과 메소드 추가 / 232
9.2.4 클래스에 속성이나 메소드 추가 / 234
9.3 사용자정의 클래스 작성 / 236
9.3.1 초기화 메소드 : __init__( ) / 237
9.3.2 인스턴스 메소드 / 240
9.4 암호화 클래스 작성 / 242
9.4.1 암호화 클래스 / 242
9.4.2 은행 계좌 관리 클래스 / 245
9.5 클래스 속성과 인스턴스 속성 / 246
9.6 속성과 메소드 비공개 / 248
9.7 클래스메소드, 정적메소드 / 250
9.7.1 정적메소드 / 250
9.7.2 클래스메소드 / 251
9.8 클래스의 매직메소드 / 253
9.9 객체지향 프로그래밍 / 255
9.10 클래스 상속 / 260
9.10.1 자식클래스에서 부모클래스의 메소드 호출하기 / 261
9.10.2 다중상속 / 263
9.10.3 다중상속에서 메소드 탐색순서와 실행순서 / 267
9.11 추상클래스 / 268
제10장 예외 처리 및 파일 입출력 / 271
10.1 예외 처리 / 271
10.1.1 예외처리 / 272
10.1.2 try-except 구문 / 272
10.1.3 try-except-as 구문 / 273
10.1.4 try-except-else-finally 구문 / 275
10.2 파일 입출력 / 276
10.2.1 파일의 위치 / 277
10.2.2 파일 열기와 닫기 / 278
10.2.3 텍스트파일 입출력 / 279
10.2.4 파일읽기 예외처리 / 284
10.2.5 텍스트 파일에 쓰기 / 285
10.2.6 바이너리 파일 읽기 및 쓰기 / 287
10.2.7 파일 삭제 및 이름 바꾸기 / 290
제11장 모듈 및 패키지 / 291
11.1 모듈 및 패키지 / 291
11.1.1 모듈 또는 패키지 불러오기 / 292
11.2 표준모듈 소개 / 293
11.2.1 math 모듈 / 293
11.2.2 random 모듈 / 295
11.3 사용자정의 모듈 / 297
11.4 시간, 날짜 관련 모듈 / 300
11.4.1 time 모듈 / 300
11.4.2 datetime 모듈 / 303
11.4.3 datetime.timedelta 클래스 / 307
제12장 넘파이와 팬더스 / 311
12.1 넘파이(numpy) / 311
12.1.1 넘파이 배열 / 311
12.1.2 넘파이 배열에 대한 인덱싱, 슬라이싱 / 316
12.1.3 배열에 대한 연산 / 318
12.1.4 넘파이배열과 기술통계량 함수 / 323
12.1.5 넘파이 배열과 넘파이 수학함수 / 324
12.1.6 행렬 관련 넘파이 함수 / 326
12.2 팬더스(pandas) / 328
12.2.1 시리즈(Series) / 329
12.2.2 데이터프레임 / 337
제13장 데이터 시각화 / 353
13.1 그래프 그리기 / 354
13.1.1 1변수 함수의 그래프 / 358
13.1.2 그래프 모양 설정 / 364
13.2 차트 그리기 / 369
13.2.1 바 차트(bar chart) / 369
13.2.2 히스토그램 / 371
13.2.3 산점도(scatter plot) / 372
13.2.4 상자그림(box plot) / 374
13.2.5 파이(pie) 차트 / 375
13.2.6 그래픽의 격자 배열 / 375
13.3 3차원 그래픽 / 380
13.4 pandas의 시각화 함수 / 385
13.4.1 시리즈 시각화 / 385
13.4.2 데이터프레임 시각화 / 387
참고문헌 / 391
찾아보기 / 393