Unit 1. 소프트웨어 교육과 파이썬 = 21 1.1 문제 해결을 위한 과학적 사고 = 23 1.2 알고리즘과 코딩 = 25 1.3 파이썬 = 27 1.4 코딩 도장을 학습하는 방법 = 28 Unit 2. 파이썬 설치하기 = 29 Unit 3. Hello, world!로 시작하기 = 35 3.1 IDLE에서 Hello, world! 출력해보기 = 35 3.2 IDLE에서 소스 파일 실행하기 = 37 3.3 명령 프롬프트에서 Hello, world! 출력하기 = 39 3.4 소스 코드 살펴보기 = 42 3.5 심사 사이트 사용하기 = 42 3.6 퀴즈 = 48 3.7 연습문제 : 문자열 출력하기 = 49 3.8 심사문제 : 문자열 출력하기 = 49 Unit 4. 기본 문법 알아보기 = 50 4.1 세미콜론 = 50 4.2 주석 = 50 4.3 들여쓰기 = 52 4.4 코드 블록 = 53 핵심 정리 = 54 Q&A = 54 Unit 5. 숫자 계산하기 = 55 5.1 정수 계산하기 = 55 5.2 실수 계산하기 = 59 5.3 괄호 사용하기 = 61 5.4 퀴즈 = 61 5.5 연습문제 : 아파트에서 소음이 가장 심한 층수 출력하기 = 62 5.6 심사문제 : 스킬 공격력 출력하기 = 62 Unit 6. 변수와 입력 사용하기 = 63 6.1 변수 만들기 = 63 6.2 변수로 계산하기 = 66 6.3 입력 값을 변수에 저장하기 = 68 6.4 입력 값을 변수 두 개에 저장하기 = 71 6.5 퀴즈 = 74 6.6 연습문제 : 정수 세 개를 입력받고 합계 출력하기 = 75 6.7 심사문제 : 변수 만들기 = 75 6.8 심사문제 : 평균 점수 구하기 = 75 Unit 7. 출력 방법 알아보기 = 77 7.1 값을 여러 개 출력하기 = 77 7.2 줄바꿈 활용하기 = 78 7.3 퀴즈 = 80 7.4 연습문제 : 날짜와 시간 출력하기 = 80 7.5 심사문제 : 날짜와 시간 출력하기 = 81 핵심 정리 = 82 Q&A = 85 Unit 8. 불과 비교, 논리 연산자 알아보기 = 87 8.1 불과 비교 연산자 사용하기 = 87 8.2 논리 연산자 사용하기 = 90 8.3 퀴즈 = 93 8.4 연습문제 : 합격 여부 출력하기 = 94 8.5 심사문제 : 합격 여부 출력하기 = 95 Unit 9. 문자열 사용하기 = 96 9.1 문자열 사용하기 = 96 9.2 퀴즈 = 100 9.3 연습문제 : 여러 줄로 된 문자열 사용하기 = 100 9.4 심사문제 : 여러 줄로 된 문자열 사용하기 = 101 Unit 10. 리스트와 튜플 사용하기 = 102 10.1 리스트 만들기 = 102 10.2 튜플 사용하기 = 105 10.3 퀴즈 = 1018 10.4 연습문제 : range로 리스트 만들기 = 109 10.5 심사문제 : range로 튜플 만들기 = 110 Unit 11. 시퀀스 자료형 활용하기 = 111 11.1 시퀀스 자료형의 공통 기능 사용하기 = 112 11.2 시퀀스 객체의 요소 개수 구하기 = 115 11.3 인덱스 사용하기 = 118 11.4 슬라이스 사용하기 = 125 11.5 퀴즈 = 139 11.1 연습문제 : 최근 3년간 인구 출력하기 = 140 11.2 연습문제 : 인덱스가 홀수인 요소 출력하기 = 141 11.3 심사문제 : 리스트의 마지막 부분 삭제하기 = 141 11.4 심사문제 : 문자열에서 인덱스가 홀수인 문자와 짝수인 문자 연결하기 = 142 Unit 12. 딕셔너리 사용하기 = 143 12.1 딕셔너리 만들기 = 143 12.2 딕셔너리의 키에 접근하고 값 할당하기 = 146 12.3 퀴즈 = 148 12.4 연습문제 : 딕셔너리에 게임 캐릭터 능력치 저장하기 = 149 12.5 심사문제 : 딕셔너리에 게임 캐릭터 능력치 저장하기 = 150 핵심 정리 = 151 Q&A = 154 Unit 13. if 조건문으로 특정 조건일 때 코드 실행하기 = 156 13.1 if 조건문 사용하기 = 157 13.2 if 조건문과 들여쓰기 = 159 13.3 중첩 if 조건문 사용하기 = 161 13.4 사용자가 입력한 값에 if 조건문 사용하기 = 162 13.5 퀴즈 = 163 13.6 연습문제 : if 조건문 사용하기 = 164 13.7 심사문제 : 온라인 할인 쿠폰 시스템 만들기 = 165 Unit 14. else를 사용하여 두 방향으로 분기하기 = 166 14.1 else 사용하기 = 166 14.2 else와 들여쓰기 = 168 14.3 if 조건문의 동작 방식 알아보기 = 169 14.4 조건식을 여러 개 지정하기 = 171 14.5 퀴즈 = 173 14.6 연습문제 : 합격 여부 판단하기 = 174 14.7 심사문제 : 합격 여부 판단하기 = 174 Unit 15. elif를 사용하여 여러 방향으로 분기하기 = 176 15.1 elif 사용하기 = 177 15.2 퀴즈 = 179 15.3 연습문제 : if, elif, else 모두 사용하기 = 180 15.4 심사문제 : 교통카드 시스템 만들기 = 180 핵심 정리 = 182 Q&A = 183 Unit 16. for 반복문으로 Hello, world! 100번 출력하기 = 185 16.1 for와 range 사용하기 = 185 16.2 for와 range 응용하기 = 187 16.3 시퀀스 객체로 반복하기 = 191 16.4 퀴즈 = 192 16.5 연습문제 : 리스트의 요소에 10을 곱해서 출력하기 = 193 16.6 심사문제 : 구구단 출력하기 = 193 Unit 17. while 반복문으로 Hello, world! 100번 출력하기 = 195 17.1 while 반복문 사용하기 = 196 17.2 반복 횟수가 정해지지 않은 경우 = 198 17.3 while 반복문으로 무한 루프 만들기 = 200 17.4 퀴즈 = 201 17.5 연습문제 : 변수 두 개를 다르게 반복하기 = 202 17.6 심사문제 : 교통카드 잔액 출력하기 = 203 Unit 18. break, continue로 반복문 제어하기 = 204 18.1 break로 반복문 끝내기 = 204 18.2 continue로 코드 실행 건너뛰기 = 206 18.3 입력한 횟수대로 반복하기 = 208 18.4 퀴즈 = 210 18.5 연습문제 : 3으로 끝나는 숫자만 출력하기 = 211 18.6 심사문제 : 두 수 사이의 숫자 중 3으로 끝나지 않는 숫자 출력하기 = 212 Unit 19. 계단식으로 별 출력하기 = 213 19.1 중첩 루프 사용하기 = 213 19.2 사각형으로 별 출력하기 = 214 19.3 계단식으로 별 출력하기 = 216 19.4 퀴즈 = 217 19.1 연습문제 : 역삼각형 모양으로 별 출력하기 = 218 19.2 심사문제 : 산 모양으로 별 출력하기 = 219 Unit 20. FizzBuzz 문제 = 220 20.1 1부터 100까지 숫자 출력하기 = 220 20.2 3의 배수일 때와 5의 배수일 때 처리하기 = 221 20.3 3과 5의 공배수 처리하기 = 221 20.4 논리 연산자를 사용하지 않고 3과 5의 공배수 처리하기 = 222 20.5 코드 단축하기 = 223 20.6 퀴즈 = 224 20.7 연습문제 : 2과 11의 배수, 공배수 처리하기 = 225 20.8 심사문제 : 5와 7의 배수, 공배수 처리하기 = 226 Unit 21. 터틀 그래픽스로 그림 그리기 = 227 21.1 사각형 그리기 = 227 21.2 다각형 그리기 = 231 21.3 복잡한 도형 그리기 = 235 21.4 퀴즈 = 237 21.5 연습문제 : 오각별 그리기 = 238 21.6 심사문제 : 별 그리기 = 239 핵심 정리 = 241 Q&A = 243 Unit 22. 리스트와 튜플 응용하기 = 244 22.1 리스트 조작하기 = 244 22.2 리스트의 할당과 복사 알아보기 = 254 22.3 반복문으로 리스트의 요소를 모두 출력하기 = 256 22.4 리스트의 가장 작은 수, 가장 큰 수, 합계 구하기 = 259 22.5 리스트 표현식 사용하기 = 261 22.6 리스트에 map 사용하기 = 264 22.7 튜플 응용하기 = 266 22.8 퀴즈 = 269 22.9 연습문제 : 리스트에서 특정 요소만 뽑아내기 = 270 22.10 심사문제 : 2의 거듭제곱 리스트 생성하기 = 271 Unit 23. 2차원 리스트 사용하기 = 272 23.1 2차원 리스트를 만들고 요소에 접근하기 = 272 23.2 반복문으로 2차원 리스트의 요소를 모두 출력하기 = 275 23.3 반복문으로 리스트 만들기 = 278 23.4 2차원 리스트의 할당과 복사 알아보기 = 281 23.5 퀴즈 = 282 23.6 연습문제 : 3차원 리스트 만들기 = 284 23.7 심사문제 : 지뢰찾기 = 285 Unit 24. 문자열 응용하기 = 287 24.1 문자열 조작하기 = 287 24.2 문자열 서식 지정자와 포매팅 사용하기 = 294 24.3 퀴즈 = 302 24.4 연습문제 : 파일 경로에서 파일명만 가져오기 = 303 24.5 심사문제 : 특정 단어 개수 세기 = 305 24.6 심사문제 : 높은 가격순으로 출력하기 = 305 핵심 정리 = 307 Q&A = 312 Unit 25. 딕셔너리 응용하기 = 313 25.1 딕셔너리 조작하기 = 313 25.2 반복문으로 딕셔너리의 키-값 쌍을 모두 출력하기 = 319 25.3 딕셔너리 표현식 사용하기 = 321 25.4 딕셔너리 안에서 딕셔너리 사용하기 = 323 25.5 딕셔너리의 할당과 복사 = 324 25.6 퀴즈 = 326 25.7 연습문제 : 평균 점수 구하기 = 328 25.8 심사문제 : 딕셔너리에서 특정 값 삭제하기 = 328 Unit 26. 세트 사용하기 = 330 26.1 세트 만들기 = 330 26.2 집합 연산 사용하기 = 333 26.3 세트 조작하기 = 340 26.4 세트의 할당과 복사 = 342 26.5 반복문으로 세트의 요소를 모두 출력하기 = 343 26.6 세트 표현식 사용하기 = 343 26.7 퀴즈 = 345 26.8 연습문제 : 공배수 구하기 = 346 26.9 심사문제 : 공약수 구하기 = 346 핵심 정리 = 348 Q&A = 350 Unit 27. 파일 사용하기 = 352 27.1 파일에 문자열 쓰기, 읽기 = 352 27.2 문자열 여러 줄을 파일에 쓰기, 읽기 = 355 27.3 파이썬 객체를 파일에 저장하기, 가져오기 = 358 27.4 퀴즈 = 360 27.5 연습문제 : 파일에서 10자 이하인 단어 개수 세기 = 360 27.6 심사문제 : 특정 문자가 들어있는 단어 찾기 = 361 Unit 28. 회문 판별과 N-gram 만들기 = 362 28.1 회문 판별하기 = 362 28.2 N-gram 만들기 = 365 28.3 연습문제 : 단어 단위 N-gram 만들기 = 368 28.4 심사문제 : 파일에서 회문인 단어 출력하기 = 369 핵심 정리 = 370 Q&A = 371 Unit 29. 함수 사용하기 = 372 29.1 Hello, world! 출력 함수 만들기 = 372 29.2 덧셈 함수 만들기 = 374 29.3 함수의 결과를 반환하기 = 376 29.4 함수에서 값을 여러 개 반환하기 = 378 29.5 함수의 호출 과정 알아보기 = 379 29.6 퀴즈 = 383 29.7 연습문제 : 몫과 나머지를 구하는 함수 만들기 = 384 29.8 심사문제 : 사칙 연산 함수 만들기 = 384 Unit 30. 함수에서 위치 인수와 키워드 인수 사용하기 = 386 30.1 위치 인수와 리스트 언패킹 사용하기 = 386 30.2 키워드 인수 사용하기 = 389 30.3 키워드 인수와 딕셔너리 언패킹 사용하기 = 390 30.4 매개변수에 초깃값 지정하기 = 395 30.5 퀴즈 = 396 30.6 연습문제 : 가장 높은 점수를 구하는 함수 만들기 = 397 30.7 심사문제 : 가장 낮은 점수, 높은 점수와 평균 점수를 구하는 함수 만들기 = 398 Unit 31. 함수에서 재귀호출 사용하기 = 399 31.1 재귀호출 사용하기 = 399 31.2 재귀호출로 팩토리얼 구하기 = 401 31.3 퀴즈 = 403 31.4 연습문제 : 재귀호출로 회문 판별하기 = 404 31.5 심사문제 : 재귀호출로 피보나치 수 구하기 = 404 핵심 정리 = 406 Q&A = 408 Unit 32. 람다 표현식 사용하기 = 410 32.1 람다 표현식으로 함수 만들기 = 410 32.2 람다 표현식과 map, filter, reduce 함수 활용하기 = 412 32.3 퀴즈 = 417 32.4 연습문제 : 이미지 파일만 가져오기 = 417 32.5 심사문제 : 파일 이름을 한꺼번에 바꾸기 = 418 Unit 33. 클로저 사용하기 = 419 33.1 변수의 사용 범위 알아보기 = 419 33.2 함수 안에서 함수 만들기 = 422 33.3 클로저 사용하기 = 425 33.4 퀴즈 = 428 33.5 연습문제 : 호출 횟수를 세는 함수 만들기 = 428 33.6 심사문제 : 카운트다운 함수 만들기 = 429 핵심 정리 = 430 Q&A = 431 Unit 34. 클래스 사용하기 = 432 34.1 클래스와 메서드 만들기 = 433 34.2 속성 사용하기 = 437 34.3 비공개 속성 사용하기 = 442 34.4 퀴즈 = 445 34.5 연습문제 : 게임 캐릭터 클래스 만들기 = 446 34.6 심사문제 : 게임 캐릭터 클래스 만들기 = 446 Unit 35. 클래스 속성과 정적, 클래스 메서드 사용하기 = 448 35.1 클래스 속성과 인스턴스 속성 알아보기 = 448 35.2 정적 메서드 사용하기 = 452 35.3 클래스 메서드 사용하기 = 453 35.4 퀴즈 = 455 35.5 연습문제 : 날짜 클래스 만들기 = 456 35.6 심사문제 : 시간 클래스 만들기 = 457 Unit 36. 클래스 상속 사용하기 = 458 36.1 사람 클래스로 학생 클래스 만들기 = 459 36.2 상속 관계와 포함 관계 알아보기 = 460 36.3 기반 클래스의 속성 사용하기 = 462 36.4 메서드 오버라이딩 사용하기 = 464 36.5 다중 상속 사용하기 = 466 36.6 추상 클래스 사용하기 = 469 36.7 퀴즈 = 472 36.8 연습문제 : 리스트에 기능 추가하기 = 473 36.9 심사문제 : 다중 상속 사용하기 = 474 Unit 37. 두 점 사이의 거리 구하기 = 475 37.1 두 점 사이의 거리 구하기 = 475 37.2 연습문제 : 사각형의 넓이 구하기 = 479 37.3 심사문제 : 두 점 사이의 거리 구하기 = 480 핵심 정리 = 481 Q&A = 484 Unit 38. 예외 처리 사용하기 = 486 38.1 try except로 사용하기 = 486 38.2 else와 finally 사용하기 = 490 38.3 예외 발생시키기 = 492 38.4 예외 만들기 = 495 38.5 퀴즈 = 497 38.6 연습문제 : 파일 예외 처리하기 = 497 38.7 심사문제 : 회문이 아니면 예외 발생시키기 = 498 Unit 39. 이터레이터 사용하기 = 499 39.1 반복 가능한 객체 알아보기 = 499 39.2 이터레이터 만들기 = 502 39.3 인덱스로 접근할 수 있는 이터레이터 만들기 = 504 39.4 iter, next 함수 활용하기 = 506 39.5 퀴즈 = 508 39.6 연습문제 : 배수 이터레이터 만들기 = 508 39.7 심사문제 : 시간 이터레이터 만들기 = 509 Unit 40. 제너레이터 사용하기 = 511 40.1 제너레이터와 yield 알아보기 = 511 40.2 제너레이터 만들기 = 516 40.3 yield from으로 값을 여러 번 바깥으로 전달하기 = 517 40.4 퀴즈 = 519 40.5 연습문제 : 파일 읽기 제너레이터 만들기 = 520 40.6 심사문제 : 소수 제너레이터 만들기 = 521 Unit 41. 코루틴 사용하기 = 522 41.1 코루틴에 값 보내기 = 523 41.2 코루틴 바깥으로 값 전달하기 = 526 41.3 코루틴을 종료하고 예외 처리하기 = 529 41.4 하위 코루틴의 반환값 가져오기 = 531 41.5 퀴즈 = 535 41.6 연습문제 : 문자열 검색 코루틴 만들기 = 535 41.7 심사문제 : 사칙연산 코루틴 만들기 = 536 핵심 정리 = 538 Q&A = 542 Unit 42. 데코레이터 사용하기 = 543 42.1 데코레이터 만들기 = 543 42.2 매개변수와 반환값을 처리하는 데코레이터 만들기 = 547 42.3 매개변수가 있는 데코레이터 만들기 = 550 42.4 클래스로 데코레이터 만들기 = 553 42.5 클래스로 매개변수와 반환값을 처리하는 데코레이터 만들기 = 555 42.6 퀴즈 = 557 42.7 연습문제 : 데코레이터로 매개변수의 자료형 검사하기 = 558 42.8 심사문제 : HTML 태그 데코레이터 만들기 = 559 Unit 43. 정규표현식 사용하기 = 561 43.1 문자열 판단하기 = 561 43.2 범위 판단하기 = 562 43.3 그룹 사용하기 = 567 43.4 문자열 바꾸기 = 568 43.5 연습문제 : 이메일 주소 검사하기 = 571 43.6 심사문제 : URL 검사하기 = 572 Unit 44. 모듈과 패키지 사용하기 = 573 44.1 import로 모듈 가져오기 = 573 44.2 import로 패키지 가져오기 = 577 44.3 파이썬 패키지 인덱스에서 패키지 설치하기 = 579 44.4 퀴즈 = 582 44.5 연습문제 : 소수점 이하 올림, 버림 구하기 = 582 44.6 심사문제 : 원의 넓이 구하기 = 583 Unit 45. 모듈과 패키지 만들기 = 584 45.1 모듈 만들기 = 584 45.2 모듈과 시작점 알아보기 = 586 45.3 패키지 만들기 = 590 45.4 패키지에서 from import 응용하기 = 593 45.5 퀴즈 = 598 45.6 연습문제 : 하위 패키지 구성하기 = 599 45.7 심사문제 : 패키지 사용하기 = 599 핵심 정리 = 600 Q&A = 605 Unit 46. 실전예제 : 웹의 데이터로 그래프 그리기 = 606 46.1 아나콘다 설치하기 = 606 46.2 주피터 노트북 사용하기 = 610 46.3 웹 페이지의 HTML을 가져와서 파일로 저장하기 = 614 46.4 데이터로 그래프 그리기 = 621 Unit 47. 부록 = 627 47.1 비트 연산자 사용하기 = 627 47.2 연산자 우선순위 = 631 47.3 bytes, bytearray 사용하기 = 631 47.4 날짜/시간 모듈 활용하기 = 634 47.5 내장 함수 = 638 47.6 이스케이프 시퀀스 = 640 47.7 실수 값의 오차 = 641 47.8 with as에 사용할 수 있는 클래스 만들기 = 643 47.9 메타클래스 사용하기 = 644 47.10 asyncio 사용하기 = 646 47.11 가상환경 사용하기 = 656 47.12 Windows에서 패키지 설치 에러 해결하기 = 660 47.13 프로퍼티 사용하기 = 663 47.14 PyCharm 사용하기 = 664 47.15 할당 표현식 사용하기 = 665 47.16 구조적 패턴 매칭 사용하기 = 667 47.17 with as에서 괄호 사용하기 = 671