길벗·이지톡

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

파이썬다운 코드 작성법을 익혀 간결하고 효율적인 코드를 작성하자!

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

목차

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 실습 문제

 

10Decimal, 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 실습 문제

 

11randommath 패키지

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 numpymatplotlib으로 그래프 선 그리기

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 xticksyticks로 축 조정하기

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 알파벳 순서의 문법 참고 자료

 

 

 

더보기접기

저자

ㆍ지은이 브라이언 오버랜드

지은이 소개
Brian Overland 20대부터 전문 프로그래머로 일하기 시작했고, 컴퓨터 과학과 영어, 수학 선생님으로도 일했다. 새로운 언어를 배우는 것을 즐기며 게임, 퍼즐, 시뮬레이션이나 수학 문제를 프로그래밍하는 것만큼, 다른 사람에게 새로 배운 언어를 설명하는 능력도 탁월하다. 12권이 넘는 프로그래밍 도서를 집필한 저자이기도 하다. 마이크로소프트에서 10년 동안 소프트웨어 테스터, 프로그래머/저자, 매니저로 근무했으며, 그의 가장 큰 성과는 비주얼 베이직 1.0의 리드 저자이자 전체 문서화 프로젝트 리더로 활동할 때 얻었다. 이 프로젝트는 마이크로소프트 윈도 개발을 하는 사람들에게 길잡이 역할을 하여 세상을 바꾸는 데 이바지했으며, 프로젝트의 성공 비결은 윈도 개발 가이드 문서가 재미있고 쉽다는 것을 보여 주었기 때문이라고 생각한다.

ㆍ지은이 존 베넷

지은이 소개
John Bennett 프록시미티 테크놀로지(Proximity Technology), 일렉트로닉 퍼블리싱(Electronic Publishing)과 마이크로소프트의 시니어 소프트웨어 엔지니어다. 최근에는 프로토타이핑 도구로 파이썬을 사용하여 새로운 프로그래밍 언어를 개발했다. 9개의 미국 특허를 보유하고 있으며, 그가 진행한 프로젝트로는 휴대용 철자 검사기와 동아시아 필기 인식 소프트웨어 등이 있다.

ㆍ옮긴이 조인석

옮긴이 소개
17년차 소프트웨어 엔지니어이며, 현대정보기술, 삼성SDS, 두산중공업을 거쳐 현재는 글로벌 오픈 소스 검색엔진 1위 회사인 엘라스틱에서 수석 기술지원 엔지니어로 근무하고 있다. 『파이썬 프로그래밍』(혜지원), 『파이선으로 쉽게 배우는 프로그래밍 입문』(한빛 아카데미)을 집필했고, 『파이썬 핵심 개발자들과의 인터뷰』(터닝포인트)를 번역했다. 파이콘 코리아 2017, 2019의 연사로도 활동하였으며, 직접 경험한 기술 이야기를 여러 엔지니어들과 나누는 것을 즐긴다.

연관 프로그램

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