서브메뉴

본문

파이썬 스킬 업 (기초를 넘어서, 파이썬을 파이썬답게 사용하자!)
파이썬 스킬 업 (기초를 넘어서, 파이썬을 파이썬답게 사용하자!)
저자 : 브라이언 오버랜드|존 베넷
출판사 : 길벗
출판년 : 2021
정가 : 40000, ISBN : 9791165215675

책소개


기초를 넘어서, 파이썬 고수로 성장하는 첫걸음!
런타임 효율성, 고급 문법, 람다 함수, 정규표현식, 매직 메서드, 데이터 수집 및 시각화까지!


런타임 효율성부터 고급 문법, 람다 함수, 정규표현식, 매직 메서드 등 고급 주제를 필수 항목으로 분류하여 설명하며, 많이 사용되는 넘파이를 자세히 설명하고, 이 외에 랜덤과 수학 패키지를 포함한 유용한 여러 모듈도 함께 다룬다. 마지막으로 금융 상품의 원리금 및 이자율(단리/복리) 계산을 손쉽게 하고, 인터넷에서 금융 데이터 가져와 주가 변동을 통계 데이터와 함께 살펴보는 차트까지 만들어 본다. 이 책으로 파이썬 전체 기본 문법을 깊은 수준으로 처음부터 끝까지 훑어보면서 그 과정에서 학습한 내용을 점검하고, 빠진 부분을 채워넣을 수 있으며, 잘못 알고 있던 사실을 바로잡을 수 있다. 또한, 스킬 업할 수 있는 다양한 주제들도 함께 설명하므로 파이썬 기초를 익힌 후 다음 단계로 나아가고 싶은 모든 분에게 추천한다.

목차


1장 파이썬 기초 돌아보기

1.1 파이썬 빠르게 시작하기
1.2 변수와 이름 짓기
1.3 대입 연산자 조합
1.4 파이썬 산술 연산자 요약
1.5 기초 데이터 타입: 정수와 부동소수점
1.6 기본 입력과 출력
1.7 함수 정의
1.8 파이썬 if 문
1.9 파이썬 while 문
1.10 간단한 프로그램 작성하기
1.11 파이썬 불리언 연산자 요약
1.12 함수 인수와 반환값
1.13 선행 참조 문제
1.14 파이썬 문자열
1.15 파이썬 리스트(그리고 강력한 정렬 앱)
1.16 for 문과 범위
1.17 튜플
1.18 딕셔너리
1.19 세트
1.20 전역 변수와 지역 변수
1.21 정리해 보자
1.22 복습 문제
1.23 실습 문제

2장 고급 문자열 기능

2.1 문자열은 불변이다
2.2 바이너리를 포함한 숫자 변환
2.3 문자열 연산자(+, =, *, 〉, 기타)
2.4 인덱싱과 슬라이싱
2.5 단일-문자 함수(문자 코드)
2.6 ‘join’을 사용하여 만든 문자열
2.7 주요 문자열 함수
2.8 이진수와 10진수, 16진수 변환 함수
2.9 간단한 불리언(‘is’) 메서드
2.10 대·소문자 변환 메서드
2.11 검색-교체 메서드
2.12 ‘split’을 활용한 입력 값 쪼개기
2.13 앞뒤 문자 제거하기
2.14 자리 맞춤 메서드
2.15 정리해 보자
2.16 복습 문제
2.17 실습 문제

3장 고급 리스트 기능

3.1 파이썬 리스트 생성 및 활용
3.2 리스트 복사 vs 리스트 변수 복사
3.3 인덱스
__3.3.1 양수 인덱스
__3.3.2 음수 인덱스
__3.3.3 enumerate 함수로 인덱스 숫자 생성
3.4 조각으로부터 데이터 가져오기
3.5 조각 안에 값 대입하기
3.6 리스트 연산자
3.7 얕은 복사 vs 깊은 복사
3.8 리스트 함수
3.9 리스트 메서드: 리스트 수정하기
3.10 리스트 메서드: 내용 정보 가져오기
3.11 리스트 메서드: 재편성하기
3.12 스택 역할을 하는 리스트: RPN 애플리케이션
3.13 reduce 함수
3.14 람다 함수
3.15 리스트 함축
3.16 딕셔너리와 세트의 함축
3.17 리스트를 통한 인수 전달하기
3.18 다차원 리스트
3.18.1 불균형 행렬
3.18.2 제멋대로 큰 행렬 만들기
3.19 정리해 보자
3.20 복습 문제
3.21 실습 문제

4장 지름길, 커맨드 라인, 그리고 패키지

4.1 개요
4.2 22가지 프로그래밍 지름길
__4.2.1 필요하다면 코드를 여러 줄에 걸쳐 작성한다
__4.2.2 for 루프는 현명하게 사용한다
__4.2.3 대입 연산자 조합을 이해한다(? +=)
__4.2.4 다중 대입을 사용한다
__4.2.5 튜플 대입을 사용한다
__4.2.6 고급 튜플 대입을 사용한다
__4.2.7 리스트와 문자열 ‘곱하기’를 사용한다
__4.2.8 다중 값을 반환한다
__4.2.9 루프와 else 키워드를 사용한다
__4.2.10 불리언과 ‘not’의 이점을 활용한다
__4.2.11 문자열은 문자의 나열로 다룬다
__4.2.12 replace를 사용하여 문자를 제거한다
__4.2.13 필요 없는 루프는 사용하지 않는다
__4.2.14 연결된 비교 연산자를 사용한다
__4.2.15 함수 테이블(리스트, 딕셔너리)로 switch 문을 모방한다
__4.2.16 is 연산자는 정확하게 사용한다
__4.2.17 단일 행 for 루프를 사용한다
__4.2.18 여러 문장을 하나의 행으로 줄인다
__4.2.19 단일 행 if/then/else 문을 작성한다
__4.2.20 range와 함께 enum을 생성한다
__4.2.21 IDLE 안에서 비효율적인 print 함수 사용을 줄인다
__4.2.22 큰 번호 안에 언더스코어(_)를 넣는다
4.3 커맨드 라인에서 파이썬 실행하기
__4.3.1 윈도 기반 시스템에서 실행하기
__4.3.2 macOS 시스템에서 실행하기
__4.3.3 pip 혹은 pip3로 패키지 내려받기
4.4 doc string 작성하고 사용하기
4.5 패키지 탑재하기
4.6 파이썬 패키지의 가이드 투어
4.7 일급 객체인 함수
4.8 가변 길이 인수 리스트
__4.8.1 *args 리스트
__4.8.2 **kwargs 리스트
4.9 데코레이터와 함수 프로파일러
4.10 제너레이터
__4.10.1 이터레이터란 무엇인가?
__4.10.2 제너레이터 소개
4.11 커맨드 라인 인수 접근하기
4.12 정리해 보자
4.13 복습 문제
4.14 실습 문제

5장 정밀하게 텍스트 포매팅하기

5.1 백분율 기호 연산자(%)를 사용한 포매팅
5.2 백분율 기호(%) 포맷 지시자
5.3 백분율 기호(%) 변수-너비 출력 필드
5.4 전역 ‘format’ 함수
5.5 format 메서드 소개
5.6 위치로 순서 정하기(이름 혹은 색인)
5.7 ‘repr’ vs 문자열 변환
5.8 ‘format’ 함수와 메서드의 ‘사양’ 필드
__5.8.1 출력-필드 너비
__5.8.2 텍스트 조정: ‘채우기’와 ‘자리 맞춤’ 문자
__5.8.3 ‘기호’ 문자
__5.8.4 0으로 시작하는 문자(0)
__5.8.5 천 단위 위치 구분자
__5.8.6 정밀도 제어
__5.8.7 문자열에서 사용한 ‘정밀도(잘라 내기)’
__5.8.8 ‘타입’ 지시자
__5.8.9 이진수 출력하기
__5.8.10 8진수와 16진수 출력하기
__5.8.11 백분율 출력하기
__5.8.12 이진수 예시
5.9 변수-길이 필드
5.10 정리해 보자
5.11 복습 문제
5.12 실습 문제

6장 정규표현식, 파트 Ⅰ

6.1 정규표현식의 소개
6.2 실제 예시: 전화번호
6.3 일치 패턴 정제하기
6.4 정규표현식 동작 방식: 컴파일 vs 실행
6.5 대·소문자 무시하기, 그리고 다른 함수 플래그
6.6 정규표현식: 기본 문법 요약
__6.6.1 메타 문자
__6.6.2 문자 집합
__6.6.3 패턴 수량자
__6.6.4 역추적, 탐욕적 수량자와 게으른 수량자
6.7 정규표현식 실습 예시
6.8 Match 객체 사용하기
6.9 패턴에 맞는 문자열 검색하기
6.10 반복하여 검색하기(findall)
6.11 findall 메서드와 그룹화 문제
6.12 반복 패턴 검색하기
6.13 텍스트 교체하기
6.14 정리해 보자
6.15 복습 문제
6.16 실습 문제

7장 정규표현식, 파트 Ⅱ

7.1 고급 정규표현식 문법의 요약
7.2 태그를 남기지 않는 그룹
__7.2.1 표준 숫자 예시
__7.2.2 태깅 문제 고치기
7.3 탐욕적 일치 vs 게으른 일치
7.4 전방탐색 기능
7.5 다중 패턴 확인하기(전방탐색)
7.6 부정적 전방탐색
7.7 명명 그룹
7.8 re.split 함수
7.9 스캐너 클래스와 RPN 프로젝트
7.10 RPN: 스캐너로 더 많은 작업 수행하기
7.11 정리해 보자
7.12 복습 문제
7.13 실습 문제

8장 텍스트와 바이너리 파일

8.1 두 가지 종류의 파일: 텍스트와 바이너리
__8.1.1 텍스트 파일
__8.1.2 바이너리 파일
8.2 바이너리 파일을 사용하는 경우: 요약
8.3 파일/디렉터리 시스템
8.4 파일을 열 때 발생하는 예외 다루기
8.5 ‘with’ 키워드 사용하기
8.6 읽기/쓰기 연산의 요약
8.7 텍스트 파일 작업 상세하게 알아보기
8.8 파일 포인터(‘seek’) 사용하기
8.9 RPN 프로젝트 안에서 텍스트 읽기
__8.9.1 현재까지의 RPN 번역기
__8.9.2 텍스트 파일의 RPN 읽기
__8.9.3 RPN에 대입 연산자 추가하기
8.10 바이너리 직접 읽기/쓰기
8.11 데이터를 고정-길이 필드로 변환(struct)
__8.11.1 한 번에 하나의 숫자 읽기/쓰기
__8.11.2 한 번에 여러 숫자 읽기/쓰기
__8.11.3 고정-길이 문자열 읽기/쓰기
__8.11.4 변수-길이 문자열 읽기/쓰기
__8.11.5 문자열과 숫자를 함께 읽기/쓰기
__8.11.6 저수준 상세: 빅 엔디안 vs 리틀 엔디안
8.12 피클링 패키지 사용하기
8.13 shelve 패키지 사용하기
8.14 정리해 보자
8.15 복습 문제
8.16 실습 문제

9장 클래스와 매직 메서드

9.1 클래스와 객체 기본 문법
9.2 인스턴스 변수에 대해 더 알아보자
9.3 __init__ 메서드와 __new__ 메서드
9.4 클래스와 선행 참조 문제
9.5 메서드 기본
9.6 전역 변수/메서드와 지역 변수/메서드
9.7 상속
9.8 다중 상속
9.9 매직 메서드 개요
9.10 매직 메서드 상세
__9.10.1 파이썬 클래스의 문자열 표현 3
__9.10.2 객체 표현 메서드
__9.10.3 비교 메서드
__9.10.4 산술 연산자 메서드
__9.10.5 단항 산술 연산자
__9.10.6 리플렉션(역방향) 메서드
__9.10.7 교체 연산자 메서드
__9.10.8 변환 메서드
__9.10.9 컬렉션 클래스 메서드
__9.10.10 _ _iter_ _와 _ _next_ _ 구현하기
9.11 다중 인수 타입 지원
9.12 동적 속성 설정 및 조회
9.13 정리해 보자
9.14 복습 문제
9.15 실습 문제

10장 Decimal, Money, 그리고 기타 클래스

10.1 숫자 클래스의 개요
10.2 부동소수점 포맷의 제약 사항
10.3 Decimal 클래스 소개
10.4 Decimal 객체를 위한 특수 연산
10.5 Decimal 클래스 애플리케이션
10.6 Money 클래스 설계하기
10.7 기본 Money 클래스 작성하기(포함)
10.8 Money 객체 출력하기(“_ _str_ _”, “_ _repr_ _”)
10.9 기타 Money용 연산
10.10 데모: Money 계산기
10.11 기본 통화 설정하기
10.12 Money와 상속
10.13 Fraction 클래스
10.14 complex 클래스
10.15 정리해 보자
10.16 복습 문제
10.17 실습 문제

11장 random과 math 패키지

11.1 random 패키지의 개요
11.2 Random 함수 살펴보기
11.3 무작위 행동 테스트하기
11.4 무작위-정수 게임
11.5 카드 덱 객체 만들기
11.6 덱에 픽토그램 추가하기
11.7 정규 분포 차트 작성하기
11.8 나만의 난수 생성 프로그램 작성하기
__11.8.1 난수 생성 원칙
__11.8.2 샘플 생성기 4
11.9 math 패키지 개요
11.10 math 패키지 함수 살펴보기
11.11 특별 수치 pi 사용하기
11.12 삼각함수: 나무의 높이
11.13 로그: 숫자 맞추기 게임 돌아보기
__11.13.1 로그의 동작 원리
__11.13.2 실제 프로그램에 로그 적용하기
11.14 정리해 보자
11.15 복습 문제
11.16 실습 문제

12장 넘파이 패키지

12.1 array, numpy, matplotlib 패키지 개요
__12.1.1 array 패키지
__12.1.2 numpy 패키지
__12.1.3 numpy.random 패키지
__12.1.4 matplotlib 패키지
12.2 array 패키지 사용하기
12.3 numpy 패키지를 내려받고 탑재하기
12.4 numpy 소개: 1부터 100만까지 더하기
12.5 numpy 배열 만들기
__12.5.1 array 함수(array로 변환)
__12.5.2 arange 함수
__12.5.3 linspace 함수
__12.5.4 empty 함수
__12.5.5 eye 함수
__12.5.6 ones 함수
__12.5.7 zeros 함수
__12.5.8 full 함수
__12.5.9 copy 함수
__12.5.10 fromfunction 함수
12.6 예시: 곱셈표 만들기
12.7 numpy 배열의 배치 연산
12.8 numpy 슬라이스 정렬하기
12.9 다차원 슬라이싱
12.10 불리언 배열: numpy에 마스킹하기!
12.11 numpy와 에라토스테네스의 체
12.12 numpy 통계 구하기: 표준 편차
12.13 numpy 행과 열 가져오기
12.14 정리해 보자
12.15 복습 문제
12.16 실습 문제

13장 넘파이 고급 사용법

13.1 numpy의 고급 수학 연산
13.2 matplotlib 내려받기
13.3 numpy와 matplotlib으로 그래프 선 그리기
13.4 여러 선 그래프 그리기
13.5 복리 그래프 그리기
13.6 matplotlib으로 히스토그램 만들기
13.7 원과 가로세로 비율
13.8 파이 차트 만들기
13.9 numpy로 선형대수학 구현하기
__13.9.1 점곱(dot product)
__13.9.2 외적 함수
__13.9.3 기타 선형대수학 함수
13.10 3차원 플로팅
13.11 numpy 금융 애플리케이션
13.12 xticks와 yticks로 축 조정하기
13.13 numpy 혼합-데이터 레코드
13.14 파일에서 numpy 데이터 읽고 쓰기
13.15 정리해 보자
13.16 복습 문제
13.17 실습 문제

14장 여러 모듈과 RPN 예시

14.1 파이썬 모듈의 개요
14.2 간단한 2개의 모듈 예시
14.3 import 문의 변형
14.4 __all__ 기호 사용하기
14.5 전역과 지역 모듈 변수
14.6 메인 모듈과 __main__
14.7 상호 탑재 문제 해결하기
14.8 RPN 예시: 2개의 모듈로 나누기
14.9 RPN 예시: I/O 지침 추가하기
14.10 RPN 예시 추가 변경 598
__14.10.1 줄-번호 확인 기능 추가하기
__14.10.2 0이 아니면 이동하는 기능 추가하기
__14.10.3 초과(〉)와 난수 획득(!)
14.11 RPN: 모든 코드 모으기
14.12 정리해 보자
14.13 복습 문제
14.14 실습 문제

15장 인터넷에서 금융 데이터 가져오기

15.1 이 장의 계획
15.2 pandas 패키지 소개
15.3 stock_load: 간단한 데이터 리더
15.4 간단한 주식 차트 만들기
15.5 제목과 범례 추가하기
15.6 makeplot 함수 작성하기(리팩터링)
15.7 2개의 주식 시세를 함께 그래프로 그리기
15.8 응용: 다른 데이터 그래프 그리기
15.9 기간 제한하기
15.10 차트 쪼개기: 판매량 서브플롯
15.11 변동 평균 선 추가하기
15.12 사용자에게 선택권 넘기기
15.13 정리해 보자
15.14 복습 문제
15.15 실습 문제

부록 A 파이썬 연산자 우선순위 표
부록 B 내장 파이썬 함수
부록 C 세트 메서드
부록 D 딕셔너리 메서드
부록 E 문법 참고 자료
E.1 변수와 대입
E.2 파이썬의 빈칸 이슈
E.3 알파벳 순서의 문법 참고 자료