길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스

외우기만 해서는 파이썬도 어렵다!

프로그래밍은 연습으로 배우는 것!
문법을 외우기만 해서는 파이썬도 배우기 어렵다. 프로그래밍은 개념을 습득하고, 개념을 이해한 다음에 자신만의 프로그램을 만들면서 실력을 늘리는 것이 가장 좋다. 이제 막 문법을 배우는 중에 어떻게 프로그램을 만들라는 것인가? 그래서 연습문제와 심사문제는 방금 배운 문법만으로 코드를 작성하는 훈련을 하도록 배려했다.

최고의 학습은 반복이고, 스스로 생각하기다
파이썬 문법을 학습한 다음에는 반드시 퀴즈를 풀어보게 했다. 퀴즈를 풀어본 다음에는 반드시 연습문제로 문법을 반복하게 했고, 심사문제에서는 문법을 스스로 응용해야만 풀 수 있게 했다. 또한, Q&A와 핵심정리를 통해 두 번 더 반복해서 학습하게 했다.

코딩 도장 사이트 학습한다
학습에 대한 모든 지원은 코딩 도장 사이트(dojang.io)에서 제공된다. 혼자 공부하지만, 사이트에서는 다른 학습자의 학습 진도를 살펴볼 수 있어 나의 학습 진도를 객관화할 수 있다. 2년 동안 누적 페이지뷰 800만을 달성한 코딩 도장 사이트는 학습의 든든한 동반자가 되어 줄 것이다.

학습 사이트 https://dojang.io
예제소스 https://github.com/gilbutitbook/006936

 

※ C 언어 코딩 도장과 파이썬 코딩 도장 동영상 파일 이용방법

https://dojang.io/mod/forum/discuss.php?d=1691

목차

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 사용하기 

더보기접기

저자&기여자

ㆍ지은이 남재윤

소개
마냥 컴퓨터가 좋아서 프로그래머의 길을 걷고 있다. 뭔가 아이디어가 떠오르면 그 자리에서 만들어보고, 새로운 프로그래밍 언어가 나올 때마다 어디에 어떻게 쓰면 좋을지 생각하며 행복한 고민에 빠진다. 수학과 천문학에도 관심이 많으며 각종 위키에서 관련 정보를 읽는 것이 취미이다.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.