외우기만 해서는 파이썬도 어렵다!
프로그래밍은 연습으로 배우는 것!
문법을 외우기만 해서는 파이썬도 배우기 어렵다. 프로그래밍은 개념을 습득하고, 개념을 이해한 다음에 자신만의 프로그램을 만들면서 실력을 늘리는 것이 가장 좋다. 이제 막 문법을 배우는 중에 어떻게 프로그램을 만들라는 것인가? 그래서 연습문제와 심사문제는 방금 배운 문법만으로 코드를 작성하는 훈련을 하도록 배려했다.
최고의 학습은 반복이고, 스스로 생각하기다
파이썬 문법을 학습한 다음에는 반드시 퀴즈를 풀어보게 했다. 퀴즈를 풀어본 다음에는 반드시 연습문제로 문법을 반복하게 했고, 심사문제에서는 문법을 스스로 응용해야만 풀 수 있게 했다. 또한, Q&A와 핵심정리를 통해 두 번 더 반복해서 학습하게 했다.
코딩 도장 사이트 학습한다
학습에 대한 모든 지원은 코딩 도장 사이트(dojang.io)에서 제공된다. 혼자 공부하지만, 사이트에서는 다른 학습자의 학습 진도를 살펴볼 수 있어 나의 학습 진도를 객관화할 수 있다. 2년 동안 누적 페이지뷰 800만을 달성한 코딩 도장 사이트는 학습의 든든한 동반자가 되어 줄 것이다.
학습 사이트 https://dojang.io
예제소스 https://github.com/gilbutitbook/006936
※ C 언어 코딩 도장과 파이썬 코딩 도장 동영상 파일 이용방법
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.1 딕셔너리의 할당과 복사
__25.2 퀴즈
__25.3 연습문제: 평균 점수 구하기
__25.4 심사문제: 딕셔너리에서 특정 값 삭제하기
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.1 함수의 호출 과정 알아보기
__29.2 퀴즈
__29.3 연습문제: 몫과 나머지를 구하는 함수 만들기
__29.4 심사문제: 사칙 연산 함수 만들기
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 사용하기
ㆍ지은이 남재윤
독자의견 남기기