책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
· ISBN : 9791160509342
· 쪽수 : 536쪽
· 출판일 : 2019-10-07
책 소개
목차
0부 프로그래밍 방법 배우기
1장 왜 프로그래밍을 꼭 배워야 할까?
__1.1 프로그래밍이 중요한 이유는?
____1.1.1 프로그래밍은 전문가용이 아니다
____1.1.2 삶을 개선하라
____1.1.3 직접 도전하라
__1.2 알고 있어야 하는 내용과 이 책에서 배울 내용
__1.3 프로그래밍 학습 계획
____1.3.1 첫걸음을 떼자
____1.3.2 연습하고, 연습하고, 연습하고, 연습하라
____1.3.3 프로그래머처럼 생각하라
__1.4 요약
2장 프로그래밍 언어를 배우는 기본 원리
__2.1 프로그래밍이라는 기술
__2.2 빵 굽기와 프로그래밍의 유사성
____2.2.1 ‘빵 하나 굽기’라는 목표 이해하기
____2.2.2 레시피 찾기
____2.2.3 흐름도로 레시피를 시각화하기
____2.2.4 기존 레시피를 사용할 것인가 새로운 레시피를 만들 것인가?
__2.3 생각하고 코딩하고 테스트하고 디버깅하기를 반복하기
____2.3.1 목표 이해하기
____2.3.2 목표 시각화하기
____2.3.3 의사 코드 작성하기
__2.4 읽기 쉬운 코드 작성하기
____2.4.1 의미 있고 서술적인 이름 붙이기
____2.4.2 코드에 주석 달기
__2.5 요약
1부 변수, 타입, 식, 문
3장 파이썬 프로그래밍 언어 소개
__3.1 파이썬 설치하기
____3.1.1 파이썬이란 무엇인가?
____3.1.2 파이썬 버전 3.7.1 다운로드
____3.1.3 아나콘다 파이썬 배포판
____3.1.4 통합 개발 환경
__3.2 작업 공간 설정하기
____3.2.1 아이파이썬 콘솔
____3.2.2 파일 에디터
__3.3 요약
4장 변수와 식: 사물에 이름과 값 부여하기
__4.1 사물에 이름 붙이기
____4.1.1 수학과 프로그래밍 비교
____4.1.2 컴퓨터가 할 수 있는 일과 할 수 없는 일
__4.2 변수 소개
____4.2.1 객체는 조작할 수 있는 사물이다
____4.2.2 객체에는 이름이 있다
____4.2.3 객체 이름으로 사용할 수 있는 것은?
____4.2.4 변수 만들기
____4.2.5 변수 변경하기
__4.3 요약
5장 객체 타입과 코드 명령
__5.1 사물의 타입
__5.2 프로그래밍에서 객체의 기본 타입
____5.2.1 정수를 표현하는 int 타입
____5.2.2 소수를 표현하는 float 타입
____5.2.3 참/거짓 데이터를 표현하는 bool 타입
____5.2.4 문자열을 나타내는 str 타입
____5.2.5 값이 없음을 표현하기
__5.3 기본 타입의 데이터 값 활용하기
____5.3.1 식 블록 만들기
____5.3.2 어떤 타입의 값을 다른 타입의 값으로 변환하기
____5.3.3 산술 연산이 객체 타입에 미치는 영향
__5.4 요약
6장 진급 프로젝트: 첫 번째 파이썬 프로그램 - 분을 시간으로 변환하기
프로젝트 문제
__6.1 생각-코딩-테스트-디버깅-반복
__6.2 작업 나누기
____6.2.1 입력을 정하는 코드
____6.2.2 출력을 정하는 코드
__6.3 변환 공식 구현하기
____6.3.1 몇 시간인지 계산하기
____6.3.2 몇 분인지 계산하기
__6.4 첫 번째 프로그램: 방법 1
__6.5 첫 번째 프로그램: 방법 2
__6.6 요약
2부 문자열, 튜플, 사용자 상호작용
7장 문자열 객체 소개: 문자의 순서열
__7.1 문자의 순서열인 문자열
__7.2 문자열에 대한 기본 연산
____7.2.1 문자열 객체 만들기
____7.2.2 문자열의 인덱스 이해하기
____7.2.3 문자열 슬라이스 이해하기
__7.3 문자열에 대한 다른 연산
____7.3.1 len( )으로 문자열 안의 문자 개수 알아내기
____7.3.2 upper( )와 lower( )로 대문자 소문자 변경하기
__7.4 요약
8장 고급 문자열 연산
__8.1 부분 문자열 관련 연산
____8.1.1 find( )로 문자열에서 부분 문자열 검색하기
____8.1.2 어떤 문자열이 다른 문자열의 부분 문자열인지 알아내는 in
____8.1.3 부분 문자열의 빈도를 구하는 count( )
____8.1.4 replace( )로 부분 문자열 바꾸기
__8.2 수학 연산
__8.3 요약
9장 간단한 오류 메시지들
__9.1 문장을 입력하고 어떤 결과가 나타나는지 시험해 보기
__9.2 문자열 오류 메시지 이해하기
__9.3 요약
10장 튜플 객체: 여러 종류의 객체를 모아둔 시퀀스
__10.1 데이터의 시퀀스인 튜플
____10.1.1 튜플 객체 만들기
__10.2 튜플에 대한 연산 이해하기
____10.2.1 len( )으로 튜플 길이 얻기
____10.2.2 [ ]와 인덱스를 사용해 튜플의 원소를 가져오거나 슬라이스 얻기
____10.2.3 수학 연산 수행하기
____10.2.4 튜플 안의 객체 서로 맞바꾸기
__10.3 요약
11장 사용자 상호작용
__11.1 출력 보여주기
____11.1.1 식 출력하기
____11.1.2 여러 값 출력하기
__11.2 사용자 입력 받기
____11.2.1 프롬프트를 표시해서 입력 요청하기
____11.2.2 입력 읽기
____11.2.3 입력을 변수에 저장하기
____11.2.4 사용자 입력을 다른 타입으로 변환하기
____11.2.5 더 많은 입력 요청하기
__11.3 요약
12장 진급 프로젝트: 이름 매시업
프로젝트 문제
__12.1 문제에 대한 설명 이해하기
____12.1.1 문제를 그림으로 표현하기
____12.1.2 몇 가지 예제 만들기
____12.1.3 문제를 의사 코드로 추상화하기
__12.2 이름과 성 분리하기
____12.2.1 성과 이름 사이의 공백 찾기
____12.2.2 변수를 사용해 계산 결과 값 저장하기
____12.2.3 지금까지 진행한 일 테스트하기
__12.3 성과 이름을 반으로 나눠 각각 저장하기
____12.3.1 이름의 중간 지점 찾기
__12.4 절반의 이름들 조합하기
__12.5 요약
3부 프로그램 안에서 의사 결정 내리기
13장 프로그램에 의사 결정 도입하기
__13.1 조건문으로 의사 결정 내리기
____13.1.1 예/아니오를 묻는 질문과 참/거짓인 문장
____13.1.2 문장에 조건 추가하기
__13.2 코드로 의사 결정 내리기
____13.2.1 의사 결정을 코드화하기: 예제
____13.2.2 의사 결정을 코드화하기: 일반적인 방법
__13.3 프로그램의 구조 잡기
____13.3.1 조건문 여러 개 사용하기
____13.3.2 의사 결정의 결과에 따라 새로운 의사 결정 내리기
____13.3.3 내포 조건문을 사용하는 더 복잡한 예제
__13.4 요약
14장 더 복잡한 의사 결정 내리기
__14.1 여러 조건 조합하기
____14.1.1 조건은 참/거짓 값으로 계산되는 조건식
____14.1.2 연산자 우선순위 규칙
__14.2 코드의 어떤 부분을 실행할지 선택하기
____14.2.1 이 일을 하거나 저 일을 하거나
____14.2.2 함께 사용하기
____14.2.3 코드 블록 측면에서 생각하기
__14.3 요약
15장 진급 프로젝트: 게임북 본뜬 게임 만들기
프로젝트 문제
__15.1 게임 규칙 소개
__15.2 여러 다른 경로 만들기
__15.3 더 많은 선택? 좋지요!
__15.4 요약
4부 작업 반복하기
16장 루프로 같은 작업 반복하기
__16.1 작업 반복하기
____16.1.1 프로그램에 비선형성 추가하기
____16.1.2 무한 반복
__16.2 정해준 횟수 동안 반복하기
____16.2.1 for 루프
__16.3 N번 반복하기
____16.3.1 0부터 N-1까지 수로 이뤄진 시퀀스에 대해 루프 돌기
____16.3.2 루프 펼치기
__16.4 요약
17장 루프 주무르기
__17.1 원하는 대로 루프 돌기
__17.2 문자열에 대해 루프 돌기
__17.3 요약
18장 조건이 성립하는 동안 반복하기
__18.1 조건이 참인 동안에만 루프 반복하기
____18.1.1 추측을 위해 루프 돌기
____18.1.2 while 루프
____18.1.3 무한 루프
__18.2 for 루프와 while 루프 비교
__18.3 루프 주무르기
____18.3.1 루프를 빨리 끝내기
____18.3.2 루프를 시작하는 부분으로 돌아가기
__18.4 요약
19장 진급 프로젝트: 스크래블:아트 단어 게임
프로젝트 문제
__19.1 문제 이해하기
____19.1.1 올바른 단어 목록의 표현 방식 바꾸기
____19.1.2 주어진 타일로 올바른 단어 만들기
__19.2 코드를 여러 부분으로 나누기
__19.3 요약
5부 재사용 가능한 블록 단위로 코드를 체계화하기
20장 오래 사용할 수 있는 프로그램 만들기
__20.1 큰 작업을 더 작은 작업들로 나누기
____20.1.1 온라인으로 상품 주문하기
____20.1.2 핵심 이해하기
__20.2 프로그래밍에 블랙박스 도입하기
____20.2.1 코드 모듈 사용하기
____20.2.2 코드 추상화하기
____20.2.3 코드 재사용
__20.3 자신만의 환경에서 존재하는 하위 작업들
__20.4 요약
21장 함수로 모듈화와 추상화하기
__21.1 함수 작성하기
____21.1.1 함수 기초: 함수 입력
____21.1.2 함수 기초: 함수가 하는 일
____21.1.3 함수 기초: 함수가 반환하는 값
__21.2 함수 사용하기
____21.2.1 둘 이상의 값 반환하기
____21.2.2 return 문이 없는 함수
__21.3 함수 문서화하기
__21.4 요약
22장 고급 함수 연산
__22.1 함수를 두 가지 관점에서 살펴보기
____22.1.1 작성자 관점
____22.1.2 사용자 관점
__22.2 함수 영역
____22.2.1 간단한 영역 규칙
____22.2.2 영역 규칙
__22.3 내포 함수
__22.4 함수를 매개변수로 넘기기
__22.5 함수 반환하기
__22.6 요약
23장 진급 프로젝트: 친구 분석
프로젝트 문제
__23.1 파일 읽기
____23.1.1 파일 형식
____23.1.2 새줄 문자
____23.1.3 새줄 문자 제거하기
____23.1.4 정보를 저장하기 위해 튜플 사용하기
____23.1.5 반환할 값
__23.2 사용자 입력 정리하기
__23.3 지금까지 만든 코드 테스트 및 디버깅하기
____23.3.1 파일 객체
____23.3.2 이름과 전화번호가 들어 있는 텍스트 파일 만들기
____23.3.3 파일을 열어서 읽기
__23.4 함수 재사용하기
__23.5 정보 분석하기
____23.5.1 명세
____23.5.2 도우미 함수
__23.6 요약
6부 변경 가능한 데이터 타입 다루기
24장 변경 가능한 객체와 변경 불가능한 객체
__24.1 변경 불가능한 객체
__24.2 변경 가능성이 필요한 이유
__24.3 요약
25장 리스트 다루기
__25.1 리스트와 튜플 비교
__25.2 리스트를 만들고 특정 위치에 있는 원소 가져오기
__25.3 원소 반복 횟수 세기 및 원소 위치 찾기
__25.4 리스트에 원소 추가하기: append, insert, extend
____25.4.1 append 사용하기
____25.4.2 insert 사용하기
____25.4.3 extend 사용하기
__25.5 리스트에서 원소 제거하기: pop
__25.6 원소 값 변경하기
__25.7 요약
26장 리스트 고급 연산
__26.1 리스트 정렬 및 원소 순서 거꾸로 하기
__26.2 리스트의 리스트
__26.3 문자열을 리스트로 변환하기
__26.4 리스트 응용
____26.4.1 스택
____26.4.2 큐
__26.5 요약
27장 객체 사이의 맵인 사전
__27.1 사전, 키, 값 만들기
__27.2 사전에 키-값 쌍 추가하기
____27.2.1 키 값 제약에 대한 부연 설명
__27.3 사전에서 키-값 쌍 제거하기
__27.4 사전의 키와 값을 모두 가져오기
____27.4.1 사전에 저장된 키-값 쌍의 순서
__27.5 사전을 사용해야 하는 경우는?
____27.5.1 빈도수를 사전으로 유지하기
____27.5.2 일반적이지 않은 사전 만들기
__27.6 요약
28장 리스트와 사전 별명 붙이기와 복사하기
__28.1 객체의 별명 사용하기
____28.1.1 불변 객체에 대한 별명
____28.1.2 변경 가능한 객체에 대한 별명
____28.1.3 함수 매개변수로 변경 가능한 객체 전달하기
__28.2 변경 가능한 객체의 복사본 만들기
____28.2.1 변경 가능한 객체를 복사하는 명령들
____28.2.2 리스트 원소를 정렬한 복사본 만들기
____28.2.3 변경 가능 객체에 대한 이터레이션을 수행할 때 조심할 점
____28.2.4 별명이 존재하면 어떻게 해야 할까?
__28.3 요약
29장 진급 프로젝트: 문서 유사성 분석
프로젝트 문제
__29.1 문제를 하위 작업으로 나누기
__29.2 파일 정보 읽기
__29.3 파일에 있는 모든 단어 저장하기
__29.4 단어의 빈도 구하기
__29.5 유사도 점수를 사용해 두 문서 비교하기
__29.6 하나로 합치기
__29.7 이 프로그램을 확장할 방법 한 가지
__29.8 요약
7부 객체 지향 프로그래밍을 사용해 원하는 대로 객체 만들기
30장 직접 객체 타입 정의하기
__30.1 새로운 객체 타입이 필요한 이유는?
__30.2 객체를 이루는 것은 무엇인가?
____30.2.1 객체의 프로퍼티
____30.2.2 객체의 동작
__30.3 마침표 표기법 사용하기
__30.4 요약
31장 객체의 타입을 표현하는 클래스 만들기
__31.1 클래스를 사용해 새로운 객체 타입 구현하기
__31.2 데이터 속성을 나타내는 객체 프로퍼티
____31.2.1 객체를 __init__으로 초기화하기
____31.2.2 __init__ 내부에서 객체 프로퍼티 만들기
__31.3 객체의 동작과 연산인 메서드
__31.4 직접 정의한 객체 타입 사용하기
__31.5 매개변수를 받는 __init__을 사용해 클래스 만들기
__31.6 객체가 아닌 클래스 이름에 마침표 표기를 사용하는 경우
__31.7 요약
32장 직접 만든 객체 타입 사용하기
__32.1 스택 객체 정의하기
____32.1.1 데이터 속성 선택하기
____32.1.2 메서드 구현하기
__32.2 Stack 객체 사용하기
____32.2.1 부침개 스택 만들기
____32.2.2 원으로 이뤄진 스택 만들기
__32.3 요약
33장 원하는 대로 클래스 바꾸기
__33.1 특수 메서드 오버라이드하기
__33.2 str( ) 오버라이드하여 print( )가 객체를 출력하는 방법 변경
__33.3 내부적으로 벌어지는 일들
__33.4 클래스로 할 수 있는 일은 무엇인가?
____33.4.1 이벤트 스케줄링
__33.5 요약
34장 진급 프로젝트: 카드 게임
프로젝트 문제
__34.1 기존 클래스 사용하기
__34.2 워 게임 상세 규칙
__34.3 Player 클래스 정의하기
__34.4 CardDeck 클래스 정의하기
__34.5 카드 게임 시뮬레이션하기
____34.5.1 객체 초기화하기
____34.5.2 게임의 각 라운드 시뮬레이션하기
__34.6 클래스를 사용한 모듈화와 추상화
__34.7 요약
8부 라이브러리를 사용해 프로그램 개선하기
35장 유용한 라이브러리
__35.1 라이브러리 임포트하기
__35.2 math 라이브러리로 수학 연산 사용하기
__35.3 random 라이브러리를 사용해 난수 활용하기
____35.3.1 리스트 임의로 뒤섞기
____35.3.2 확률 게임 시뮬레이션하기
____35.3.3 시드를 사용해 똑같은 난수 결과를 다시 만들어내기
__35.4 time 라이브러리를 사용해 프로그램 실행에 걸리는 시간 측정하기
____35.4.1 클럭 사용하기
____35.4.2 프로그램 일시 중단하기
__35.5 요약
36장 프로그램 테스트 및 디버깅하기
__36.1 unittest 라이브러리 사용하기
__36.2 프로그램과 테스트 분리하기
____36.2.1 검사 유형
__36.3 작성한 코드 디버깅하기
____36.3.1 코드를 한 단계씩 쫓아갈 때 도움이 되는 도구 사용하기
__36.4 요약
37장 그래픽 사용자 인터페이스를 위한 라이브러리
__37.1 그래픽 사용자 인터페이스를 위한 라이브러리
__37.2 tkinter 라이브러리를 사용해 프로그램 설정하기
__37.3 위젯 추가하기
__37.4 이벤트 핸들러 추가하기
__37.5 요약
38장 진급 프로젝트: 태그 게임
프로젝트 문제
__38.1 문제 구성 요소 찾기
__38.2 창에 두 가지 모양 만들기
__38.3 캔버스 안에서 모양 움직이기
__38.4 두 모양 사이의 충돌 검출하기
__38.5 개선할 수 있는 부분
__38.6 요약
부록 A 연습 문제 해답
부록 B 파이썬 치트 시트
부록 C 흥미로운 파이썬 라이브러리
찾아보기