책소개
프로그래밍은 연습으로 배우는 것이다!
반복 학습으로 외우지 말고 체득하라
이론 > 실습 > 퀴즈 > 연습문제 > 심사문제로 반복해서 학습한다.
핵심정리와 Q&A로 학습한 내용을 정리한다.
올바른 코딩을 익혀라
혼자 작성한 코드가 올바른지 알 수 없다.
심사를 통과하지 못한다면 코드가 잘못된 것이다.
온라인 심사로 꼼꼼하게 채점해서 실수를 바로 잡는다.
의미있는 성장을 하라
학습 진척도를 통해 자신의 학습을 점검하고 성장을 체크한다.
심사문제 평균 통과율 90%! 심사를 통과하고 성장을 확인하라!
노력하면 반드시 통과하고 성장할 수 있는 심사문제!
10번, 20번씩 시도한 만큼 확실하게 성장한다.
학습 전용 사이트 제공
코딩 도장(dojang.io) 사이트에서 동영상 강의, 학습 진척도, 온라인 심사, 독자 Q&A를 제공한다.
초판 출간 이후 누적 페이지뷰 5,500만, 방문자수 1,800만을 달성!
예제 소스: https://github.com/gilbutitbook/006936
코딩 도장: https://dojang.io
목차
Unit 1. 소프트웨어 교육과 파이썬
__1.1 문제 해결을 위한 과학적 사고
__1.2 알고리즘과 코딩
__1.3 파이썬
__1.4 코딩 도장을 학습하는 방법
Unit 2. 파이썬 설치하기
Unit 3. Hello, world!로 시작하기
__3.1 IDLE에서 Hello, world! 출력해보기
__3.2 IDLE에서 소스 파일 실행하기
__3.3 명령 프롬프트에서 Hello, world! 출력하기
__3.4 소스 코드 살펴보기
__3.5 심사 사이트 사용하기
__3.6 퀴즈
__3.7 연습문제: 문자열 출력하기
__3.8 심사문제: 문자열 출력하기
Unit 4. 기본 문법 알아보기
__4.1 세미콜론
__4.2 주석
__4.3 들여쓰기
__4.4 코드 블록
핵심 정리
Q & A
Unit 5. 숫자 계산하기
__5.1 정수 계산하기
__5.2 실수 계산하기
__5.3 괄호 사용하기
__5.4 퀴즈
__5.5 연습문제: 아파트에서 소음이 가장 심한 층수 출력하기
__5.6 심사문제: 스킬 공격력 출력하기
Unit 6. 변수와 입력 사용하기
__6.1 변수 만들기
__6.2 변수로 계산하기
__6.3 입력 값을 변수에 저장하기
__6.4 입력 값을 변수 두 개에 저장하기
__6.5 퀴즈
__6.6 연습문제: 정수 세 개를 입력받고 합계 출력하기
__6.7 심사문제: 변수 만들기
__6.8 심사문제: 평균 점수 구하기
Unit 7. 출력 방법 알아보기
__7.1 값을 여러 개 출력하기
__7.2 줄바꿈 활용하기
__7.3 퀴즈
__7.4 연습문제: 날짜와 시간 출력하기
__7.5 심사문제: 날짜와 시간 출력하기
핵심 정리
Q & A
Unit 8. 불과 비교, 논리 연산자 알아보기
__8.1 불과 비교 연산자 사용하기
__8.2 논리 연산자 사용하기
__8.3 퀴즈
__8.4 연습문제: 합격 여부 출력하기
__8.5 심사문제: 합격 여부 출력하기
Unit 9. 문자열 사용하기
__9.1 문자열 사용하기
__9.2 퀴즈
__9.3 연습문제: 여러 줄로 된 문자열 사용하기
__9.4 심사문제: 여러 줄로 된 문자열 사용하기
Unit 10. 리스트와 튜플 사용하기
__10.1 리스트 만들기
__10.2 튜플 사용하기
__10.3 퀴즈
__10.4 연습문제: range로 리스트 만들기
__10.5 심사문제: range로 튜플 만들기
Unit 11. 시퀀스 자료형 활용하기
__11.1 시퀀스 자료형의 공통 기능 사용하기
__11.2 시퀀스 객체의 요소 개수 구하기
__11.3 인덱스 사용하기
__11.4 슬라이스 사용하기
__11.5 퀴즈
__11.1 연습문제: 최근 3년간 인구 출력하기
__11.2 연습문제: 인덱스가 홀수인 요소 출력하기
__11.3 심사문제: 리스트의 마지막 부분 삭제하기
__11.4 심사문제: 문자열에서 인덱스가 홀수인 문자와 짝수인 문자 연결하기
Unit 12. 딕셔너리 사용하기
__12.1 딕셔너리 만들기
__12.2 딕셔너리의 키에 접근하고 값 할당하기
__12.3 퀴즈
__12.4 연습문제: 딕셔너리에 게임 캐릭터 능력치 저장하기
__12.5 심사문제: 딕셔너리에 게임 캐릭터 능력치 저장하기
핵심 정리
Q & A
Unit 13. if 조건문으로 특정 조건일 때 코드 실행하기
__13.1 if 조건문 사용하기
__13.2 if 조건문과 들여쓰기
__13.3 중첩 if 조건문 사용하기
__13.4 사용자가 입력한 값에 if 조건문 사용하기
__13.5 퀴즈
__13.6 연습문제: if 조건문 사용하기
__13.7 심사문제: 온라인 할인 쿠폰 시스템 만들기
Unit 14. else를 사용하여 두 방향으로 분기하기
__14.1 else 사용하기
__14.2 else와 들여쓰기
__14.3 if 조건문의 동작 방식 알아보기
__14.4 조건식을 여러 개 지정하기
__14.5 퀴즈
__14.6 연습문제: 합격 여부 판단하기
__14.7 심사문제: 합격 여부 판단하기
Unit 15. elif를 사용하여 여러 방향으로 분기하기
__15.1 elif 사용하기
__15.2 퀴즈
__15.3 연습문제: if, elif, else 모두 사용하기
__15.4 심사문제: 교통카드 시스템 만들기
핵심 정리
Q & A
Unit 16. for 반복문으로 Hello, world! 100번 출력하기
__16.1 for와 range 사용하기
__16.2 for와 range 응용하기
__16.3 시퀀스 객체로 반복하기
__16.4 퀴즈
__16.5 연습문제: 리스트의 요소에 10을 곱해서 출력하기
__16.6 심사문제: 구구단 출력하기
Unit 17. while 반복문으로 Hello, world! 100번 출력하기
__17.1 while 반복문 사용하기
__17.2 반복 횟수가 정해지지 않은 경우
__17.3 while 반복문으로 무한 루프 만들기
__17.4 퀴즈
__17.5 연습문제: 변수 두 개를 다르게 반복하기
__17.6 심사문제: 교통카드 잔액 출력하기
Unit 18. break, continue로 반복문 제어하기
__18.1 break로 반복문 끝내기
__18.2 continue로 코드 실행 건너뛰기
__18.3 입력한 횟수대로 반복하기
__18.4 퀴즈
__18.5 연습문제: 3으로 끝나는 숫자만 출력하기
__18.6 심사문제: 두 수 사이의 숫자 중 3으로 끝나지 않는 숫자 출력하기
Unit 19. 계단식으로 별 출력하기
__19.1 중첩 루프 사용하기
__19.2 사각형으로 별 출력하기
__19.3 계단식으로 별 출력하기
__19.4 퀴즈
__19.1 연습문제: 역삼각형 모양으로 별 출력하기
__19.2 심사문제: 산 모양으로 별 출력하기
Unit 20. FizzBuzz 문제
__20.1 1부터 100까지 숫자 출력하기
__20.2 3의 배수일 때와 5의 배수일 때 처리하기
__20.3 3과 5의 공배수 처리하기
__20.4 논리 연산자를 사용하지 않고 3과 5의 공배수 처리하기
__20.5 코드 단축하기
__20.6 퀴즈
__20.7 연습문제: 2과 11의 배수, 공배수 처리하기
__20.8 심사문제: 5와 7의 배수, 공배수 처리하기
Unit 21. 터틀 그래픽스로 그림 그리기
__21.1 사각형 그리기
__21.2 다각형 그리기
__21.3 복잡한 도형 그리기
__21.4 퀴즈
__21.5 연습문제: 오각별 그리기
__21.6 심사문제: 별 그리기
핵심 정리
Q & A
Unit 22. 리스트와 튜플 응용하기
__22.1 리스트 조작하기
__22.2 리스트의 할당과 복사 알아보기
__22.3 반복문으로 리스트의 요소를 모두 출력하기
__22.4 리스트의 가장 작은 수, 가장 큰 수, 합계 구하기
__22.5 리스트 표현식 사용하기
__22.6 리스트에 map 사용하기
__22.7 튜플 응용하기
__22.8 퀴즈
__22.9 연습문제: 리스트에서 특정 요소만 뽑아내기
__22.10 심사문제: 2의 거듭제곱 리스트 생성하기
Unit 23. 2차원 리스트 사용하기
__23.1 2차원 리스트를 만들고 요소에 접근하기
__23.2 반복문으로 2차원 리스트의 요소를 모두 출력하기
__23.3 반복문으로 리스트 만들기
__23.4 2차원 리스트의 할당과 복사 알아보기
__23.5 퀴즈
__23.6 연습문제: 3차원 리스트 만들기
__23.7 심사문제: 지뢰찾기
Unit 24. 문자열 응용하기
__24.1 문자열 조작하기
__24.2 문자열 서식 지정자와 포매팅 사용하기
__24.3 퀴즈
__24.4 연습문제: 파일 경로에서 파일명만 가져오기
__24.5 심사문제: 특정 단어 개수 세기
__24.6 심사문제: 높은 가격순으로 출력하기
핵심 정리
Q & A
Unit 25. 딕셔너리 응용하기
__25.1 딕셔너리 조작하기
__25.2 반복문으로 딕셔너리의 키-값 쌍을 모두 출력하기
__25.3 딕셔너리 표현식 사용하기
__25.4 딕셔너리 안에서 딕셔너리 사용하기
__25.5 딕셔너리의 할당과 복사
__25.6 퀴즈
__25.7 연습문제: 평균 점수 구하기
__25.8 심사문제: 딕셔너리에서 특정 값 삭제하기
Unit 26. 세트 사용하기
__26.1 세트 만들기
__26.2 집합 연산 사용하기
__26.3 세트 조작하기
__26.4 세트의 할당과 복사
__26.5 반복문으로 세트의 요소를 모두 출력하기
__26.6 세트 표현식 사용하기
__26.7 퀴즈
__26.8 연습문제: 공배수 구하기
__26.9 심사문제: 공약수 구하기
핵심 정리
Q & A
Unit 27. 파일 사용하기
__27.1 파일에 문자열 쓰기, 읽기
__27.2 문자열 여러 줄을 파일에 쓰기, 읽기
__27.3 파이썬 객체를 파일에 저장하기, 가져오기
__27.4 퀴즈
__27.5 연습문제: 파일에서 10자 이하인 단어 개수 세기
__27.6 심사문제: 특정 문자가 들어있는 단어 찾기
Unit 28. 회문 판별과 N-gram 만들기
__28.1 회문 판별하기
__28.2 N-gram 만들기
__28.3 연습문제: 단어 단위 N-gram 만들기
__28.4 심사문제: 파일에서 회문인 단어 출력하기
핵심 정리
Q & A
Unit 29. 함수 사용하기
__29.1 Hello, world! 출력 함수 만들기
__29.2 덧셈 함수 만들기
__29.3 함수의 결과를 반환하기
__29.4 함수에서 값을 여러 개 반환하기
__29.5 함수의 호출 과정 알아보기
__29.6 퀴즈
__29.7 연습문제: 몫과 나머지를 구하는 함수 만들기
__29.8 심사문제: 사칙 연산 함수 만들기
Unit 30. 함수에서 위치 인수와 키워드 인수 사용하기
__30.1 위치 인수와 리스트 언패킹 사용하기
__30.2 키워드 인수 사용하기
__30.3 키워드 인수와 딕셔너리 언패킹 사용하기
__30.4 매개변수에 초깃값 지정하기
__30.5 퀴즈
__30.6 연습문제: 가장 높은 점수를 구하는 함수 만들기
__30.7 심사문제: 가장 낮은 점수, 높은 점수와 평균 점수를 구하는 함수 만들기
Unit 31. 함수에서 재귀호출 사용하기
__31.1 재귀호출 사용하기
__31.2 재귀호출로 팩토리얼 구하기
__31.3 퀴즈
__31.4 연습문제: 재귀호출로 회문 판별하기
__31.5 심사문제: 재귀호출로 피보나치 수 구하기
핵심 정리
Q & A
Unit 32. 람다 표현식 사용하기
__32.1 람다 표현식으로 함수 만들기
__32.2 람다 표현식과 map, filter, reduce 함수 활용하기
__32.3 퀴즈
__32.4 연습문제: 이미지 파일만 가져오기
__32.5 심사문제: 파일 이름을 한꺼번에 바꾸기
Unit 33. 클로저 사용하기
__33.1 변수의 사용 범위 알아보기
__33.2 함수 안에서 함수 만들기
__33.3 클로저 사용하기
__33.4 퀴즈
__33.5 연습문제: 호출 횟수를 세는 함수 만들기
__33.6 심사문제: 카운트다운 함수 만들기
핵심 정리
Q & A
Unit 34. 클래스 사용하기
__34.1 클래스와 메서드 만들기
__34.2 속성 사용하기
__34.3 비공개 속성 사용하기
__34.4 퀴즈
__34.5 연습문제: 게임 캐릭터 클래스 만들기
__34.6 심사문제: 게임 캐릭터 클래스 만들기
Unit 35. 클래스 속성과 정적, 클래스 메서드 사용하기
__35.1 클래스 속성과 인스턴스 속성 알아보기
__35.2 정적 메서드 사용하기
__35.3 클래스 메서드 사용하기
__35.4 퀴즈
__35.5 연습문제: 날짜 클래스 만들기
__35.6 심사문제: 시간 클래스 만들기
Unit 36. 클래스 상속 사용하기
__36.1 사람 클래스로 학생 클래스 만들기
__36.2 상속 관계와 포함 관계 알아보기
__36.3 기반 클래스의 속성 사용하기
__36.4 메서드 오버라이딩 사용하기
__36.5 다중 상속 사용하기
__36.6 추상 클래스 사용하기
__36.7 퀴즈
__36.8 연습문제: 리스트에 기능 추가하기
__36.9 심사문제: 다중 상속 사용하기
Unit 37. 두 점 사이의 거리 구하기
__37.1 두 점 사이의 거리 구하기
__37.2 연습문제: 사각형의 넓이 구하기
__37.3 심사문제: 두 점 사이의 거리 구하기
핵심 정리
Q & A
Unit 38. 예외 처리 사용하기
__38.1 try except로 사용하기
__38.2 else와 finally 사용하기
__38.3 예외 발생시키기
__38.4 예외 만들기
__38.5 퀴즈
__38.6 연습문제: 파일 예외 처리하기
__38.7 심사문제: 회문이 아니면 예외 발생시키기
Unit 39. 이터레이터 사용하기
__39.1 반복 가능한 객체 알아보기
__39.2 이터레이터 만들기
__39.3 인덱스로 접근할 수 있는 이터레이터 만들기
__39.4 iter, next 함수 활용하기
__39.5 퀴즈
__39.6 연습문제: 배수 이터레이터 만들기
__39.7 심사문제: 시간 이터레이터 만들기
Unit 40. 제너레이터 사용하기
__40.1 제너레이터와 yield 알아보기
__40.2 제너레이터 만들기
__40.3 yield from으로 값을 여러 번 바깥으로 전달하기
__40.4 퀴즈
__40.5 연습문제: 파일 읽기 제너레이터 만들기
__40.6 심사문제: 소수 제너레이터 만들기
Unit 41. 코루틴 사용하기
__41.1 코루틴에 값 보내기
__41.2 코루틴 바깥으로 값 전달하기
__41.3 코루틴을 종료하고 예외 처리하기
__41.4 하위 코루틴의 반환값 가져오기
__41.5 퀴즈
__41.6 연습문제: 문자열 검색 코루틴 만들기
__41.7 심사문제: 사칙연산 코루틴 만들기
핵심 정리
Q & A
Unit 42. 데코레이터 사용하기
__42.1 데코레이터 만들기
__42.2 매개변수와 반환값을 처리하는 데코레이터 만들기
__42.3 매개변수가 있는 데코레이터 만들기
__42.4 클래스로 데코레이터 만들기
__42.5 클래스로 매개변수와 반환값을 처리하는 데코레이터 만들기
__42.6 퀴즈
__42.7 연습문제: 데코레이터로 매개변수의 자료형 검사하기
__42.8 심사문제: HTML 태그 데코레이터 만들기
Unit 43. 정규표현식 사용하기
__43.1 문자열 판단하기
__43.2 범위 판단하기
__43.3 그룹 사용하기
__43.4 문자열 바꾸기
__43.5 연습문제: 이메일 주소 검사하기
__43.6 심사문제: URL 검사하기
Unit 44. 모듈과 패키지 사용하기
__44.1 import로 모듈 가져오기
__44.2 import로 패키지 가져오기
__44.3 파이썬 패키지 인덱스에서 패키지 설치하기
__44.4 퀴즈
__44.5 연습문제: 소수점 이하 올림, 버림 구하기
__44.6 심사문제: 원의 넓이 구하기
Unit 45. 모듈과 패키지 만들기
__45.1 모듈 만들기
__45.2 모듈과 시작점 알아보기
__45.3 패키지 만들기
__45.4 패키지에서 from import 응용하기
__45.5 퀴즈
__45.6 연습문제: 하위 패키지 구성하기
__45.7 심사문제: 패키지 사용하기
핵심 정리
Q & A
Unit 46. 실전예제: 웹의 데이터로 그래프 그리기
__46.1 아나콘다 설치하기
__46.2 주피터 노트북 사용하기
__46.3 웹 페이지의 HTML을 가져와서 파일로 저장하기
__46.4 데이터로 그래프 그리기
Unit 47. 부록
__47.1 비트 연산자 사용하기
__47.2 연산자 우선순위
__47.3 bytes, bytearray 사용하기
__47.4 날짜/시간 모듈 활용하기
__47.5 내장 함수
__47.6 이스케이프 시퀀스
__47.7 실수 값의 오차
__47.8 with as에 사용할 수 있는 클래스 만들기
__47.9 메타클래스 사용하기
__47.10 asyncio 사용하기
__47.11 가상환경 사용하기
__47.12 Windows에서 패키지 설치 에러 해결하기
__47.13 프로퍼티 사용하기
__47.14 PyCharm 사용하기
__47.15 할당 표현식 사용하기
__47.16 구조적 패턴 매칭 사용하기
__47.17 with as에서 괄호 사용하기