Description
파이썬 입문서의 결정판!
지금 가장 뜨거운 프로그래밍 언어, 파이썬!

이 책은 객체 지향 스크립트 언어인 파이썬 입문서이다. 파이썬은 미국과 유럽, 아시아 등 전 세계에서 많은 사람이 사용하고 있는 프로그래밍 언어이다.
파이썬은 간단하고 기억하기 쉬울 뿐만 아니라 보다 현실적으로 프로그래밍에 활용할 수 있는 언어로서 구글이나 마이크로소프트와 같은 글로벌 일류 기업에서도 파이썬을 사용하고 있다. 최근에는 기계학습과 딥러닝을 비롯한 인공지능의 기초가 되는 분야, 데이터 사이언스 분야에서도 많이 사용되는 프로그래밍 언어로 주목 받고 있다.

파이썬 입문의 표준이 된 화제의 책을 4년만에 대폭 개정

이 책은 2006년 초판이 발간된 이래 4번째 발간된 개정판이다. 초판이 발매된 당시는 새로운 웹의 시작과 함께 스크립트 언어에 관심이 집중되던 시대였다. 당시 유럽에서는 유명한 웹 서비스 개발에 파이썬을 많이 사용하고 있었으나, 아시아 지역에서 파이썬 프로그램의 지명도는 거의 없었다. 그런 시대에 처음 이 책의 초판이 출판되어 많은 독자가 파이썬 언어의 우수성을 알게 되었다.
제2판이 발매된 시기는 클라우드가 보급되기 시작한 시기였다. 가상화 기술인 Xen, 구글의 클라우드 서비스 AppEngine을 비롯해 클라우드 분야에서도 파이썬이 주목을 받고 있던 시대였다.
2012년에는 파이썬 3를 중심으로 내용을 크게 수정한 제3판이 발간되었다. Linux 패키지 관리를 비롯하여 파이썬은 인프라로서 계속 사용되고 있으며, 언어로서의 일관성을 더해 오랫동안 안심하고 계속 사용하는 언어로 탈피한 새로운 파이썬을 소개한 버전이다.
그리고 제4판에서는 최근 주목받고 있는 데이터 사이언스 및 기계학습의 개요에 관한 내용을 추가하였다. Anaconda, Jupyter Notebook 등 파이썬의 최신 개발 환경, NumPy, matplotlib 등 과학기술 라이브러리, Windows, macOS, Linux에 대응할 수 있도록 내용을 보강하였다.
또한, 최근 소프트웨어 개발을 전문으로 하지 않는 이른바 공학자가 아닌 일반인이 파이썬을 사용하는 경우가 늘어나고 있는 점을 고려하여 기본 기능 설명 부분을 보다 평이하게 읽을 수 있도록 수정하였다.

4차 산업혁명 시대 프로그래머를 양성하기 위한 필독서!

이 책은 2006년 초판이 발간된 이래 파이썬 교과서로 인정받고 있는 초장기 베스트셀러이며, 특히 기계학습 · AI 등 최근 활용 분야의 내용이 보강된 제4판은 파이썬 입문서의 결정판으로 평가되고 있다.
지난 10년간 파이썬은 항상 시대의 첨단을 이끌어가는 선구자로서 웹에서부터 클라우드 및 데이터 사이언스 및 인공지능 등 기술의 최첨단 분야를 개척해 왔다. 이 책은 이러한 파이썬의 현재 활용 분야와 미래 발전 추세를 상세하게 소개하고 있다.
저자는 이 책이 앞으로도 계속해서 파이썬 프로그래머 양성에 큰 역할을 할 것으로 기대하고 있으며, 파이썬을 사랑하고 들여쓰기(indent)를 소중히 여기는 사람이 더욱 늘어날 수 있기를 희망하고 있다.
저자

시바타 아츠시

저자 시바타 아츠시 (柴田 淳)
2000년대 초반부터 주로 아웃소싱에 Python을 활용하기 시작하여 대규모 사이트와 출판사의 CMS, Google 캠페인 사이트의 백엔드를 개발하였으며, 현재는 웹코어 대표이사로서 자사의 서비스 개발ㆍ운영에 주력하면서 가시화되고 있는 예측 가능한 미래에 어떻게 살 것인가를 깊이 생각하고 있다.
저서로는『모두의 Python』,『모두의 IoT』 등이 있으며, 이중 2006년에 처음 발간된『모두의 Python』은 장기 베스트셀러로서 2016년 12월 제4판이 발간되었으며 일본에서 파이썬 입문서의 결정판으로 평가되고 있다.

목차

시작하기

Chapter 01. 프로그램 언어 파이썬
 01. 파이썬의 매력
  파이썬은 기억하기 쉽다
  파이썬은 사용하기 쉽다
  파이썬은 장래성이 있다
   Column : MIT가 파이썬을 가르치는 이유
  Anaconda란?
 02. 파이썬(Anaconda)의 설치
  학습에 필요한 환경에 관하여
  Windows에서 Anaconda 설치하기
  MacOS(OS X)에 Anaconda를 설치
  Linux에서 Anaconda를 설치
  이미 파이썬이 설치되어 있는 경우
  공식 버전 파이썬 설치
 03. 대화형 쉘(Interactive Shell)을 사용
  Windows에서 대화형 쉘을 실행
  MacOS, Linux에서 대화형 쉘을 시작
  파이썬 코드를 입력
  대화형 쉘을 종료
  에디터(editor)를 사용하여 프로그램을 작성
 04. 파일에 파이썬 프로그램을 작성
  파이썬 프로그램을 저장하기
  Windows에서 파이썬 프로그램 파일을 실행
  MacOS, Linux에서 파이썬의 스크립트 파일을 실행
  추천 에디터 및 선택 방법
   Column : 에디터 선택 조언
 05. Jupyter Notebook을 사용
  Windows 또는 MacOS에서 커널을 시작
  Linux에서 커널 실행
  대시보드(Dashboard)를 사용
  Notebook을 작성
  Notebook으로 프로그램을 실행
   Column : Notebook에서 수식이나 문장을 포함
  Notebook을 저장
  Notebook을 종료
  tmpnb에서 Jupyter Notebook을 사용
  샘플 코드의 사용 방법
   Column : Jupyter Notebook이 움직이는 구조

Chapter 02. 파이썬으로 프로그래밍을 시작하자
 01. 수치 사용
  수치를 사용한 사칙 연산
  사칙 연산과 우선순위
 02. 변수의 사용
  변수 정의
  변수를 사용하여 계산하기
   Column : 변수명 붙이기
 03. 문자열을 사용
  문자열 정의
  문자열 연결
  복합 연산자
   Column : 문자열 정의의 응용
  형태를 갖추는 파이썬의 방식
  문자열과 수치의 변환(형 변환)
  리스트 정의
 04. 리스트 사용
  인덱스(index)를 사용하여 요소를 추출
  리스트의 연결
  요소의 변경 삭제
  슬라이스를 이용하여 여러 요소를 추출
  리스트의 리스트 - 2차원 배열
  리스트의 합계 최댓값, 최솟값
  리스트의 요소 수(혹은 리스트의 길이)를 측정
 05. for문에서 루프를 사용
  range(?) 함수
 06. if문에서 조건 분기
  수치를 비교
  문자열을 비교
  문자열을 검색
  리스트를 비교
  리스트의 요소를 검색
  else문을 사용
 07. 함수를 사용
  함수란
  함수를 호출
  함수의 인수
  함수의 반환값
  함수의 정의
   Column : 함수 이름을 붙이는 요령
  인수를 정의
  함수의 반환
  지역 변수
 08. 모듈 사용
  모듈 import(가져 오기)
  import.as
  from을 사용한 import
  모듈의 찾는 방법

Chapter 03. 파이썬 기초 마스터하기
 01. 딕셔너리를 사용
  딕셔너리(Dictionary)란
  키를 사용하여 요소를 추출하기
  키를 사용하여 요소를 치환하기
  새로운 키와 값을 추가하기
  키를 사용하여 요소를 삭제
  키의 존재 확인
  키를 사용한 루프
 02. set(집합)을 사용
  set의 정의
  set의 합집합 구하기
  set의 차집합 구하기
  set의 교집합 구하기
  set의 대상차집합 구하기
  set과 리스트
  set과 비교
 03. 튜플(tuple)을 사용
  튜플의 이점
   Column : 튜플은 어떤 경우에 쓰면 좋은가
 04. if문의 응용
  비교 연산자
  비교 연산자와 True(참), False(거짓)
  비교에 관한 메모
  복잡한 비교 ? 논리연산
 05. 루프의 응용
  while문으로 루프를 작성
   Column : 파이썬에 do while 이 없는 이유
  break문과 continue문을 사용한 루프의 제어
  루프의 else
 06. 함수의 응용
  함수에 디폴트 인수를 정의
  인수의 키워드 지정
  함수와 지역 변수
   Column : 주석(comment)과 닥스트링(docstring)

Chapter 04. 내장형의 구사
 01 객체로서의 내장형
  메쏘드란?
  객체로서의 내장형
  내장 자료형의 요약
  자료형의 분류
  시퀀스
  변경 가능과 변경 불가능
   Column : 변경 가능한 문자열형 ? bytearray형
  set형과 딕셔너리형
 02. 수치형의 조작
  16진수의 표기
  2진수의 표기
  8진수의 표기
  비트 연산
 03. 문자열형을 구사하기
  문자열의 치환과 삭제
  split(?) 메쏘드와 join(?) 메쏘드
  이스케이프 문자(Escape sequence)
  raw 문자열
  문자열로 이용할 수 있는 메쏘드
  문자열의 형식
 04. 리스트형, 튜플형 구사하기
  리스트를 정렬
  정렬 순서 커스터마이징(Customizing)
  언팩 대입
  슬라이스의 스텝 수
  슬라이스를 사용한 요소의 대입과 삭제
  리스트에서 사용 가능한 메쏘드
 05. set형 구사
  set형 메쏘드를 활용
 06. 딕셔너리형 구사
  시퀀스 등으로부터 딕셔너리를 작성
  두 개의 딕셔너리를 조합
  딕셔너리의 키를 스마트하게 다루기
  딕셔너리의 메쏘드를 활용
 07. if문과 내장형
  내장형과 True(참), False(거짓)
 08. for문과 내장형
  range(?) 함수 구사하기
  시퀀스와 루프 카운터
  2개의 시퀀스를 사용한 루프
 09. 함수와 내장형
  반환값과 언팩 대입
  함수로 인수 리스트를 받기
  함수로 키워드 인수 받기
 10. 파이썬의 문자열과 한국어
  문자 코드에 관한 기본 지식
  파이썬과 유니코드
  bytes형
  문자열을 bytes형으로 변환
  bytes형을 문자열형으로 변환하기
  스크립트 파일의 인코딩 지정
  인코드의 판정
  인코드와 문자 깨짐 현상
   Column : 묵시적으로 행해지는 인코딩 변환
  멀티 바이트 문자와 문자의 경계
 11. 파이썬의 파일 처리
  파일과 파일 객체
  파일로부터 읽어 들이기
  파일에 쓰기
  바이너리 파일을 다루기
  파일명 다루기
   Column : Jupyter Notebook의 매직(magic) 명령어

Chapter 05. 파이썬과 함수형 프로그래밍
 01. 함수형 프로그래밍이란 무엇인가
  파이썬의 문장과 식
  lambda식
 02. 내포 표기(Comprehension)
  내포 표기란?
  리스트 내포 표기의 상세
  리스트 내포 표기에서 이용하는 ‘if’
  딕셔너리 내포 표기
  set 내포 표기
 03. 이터레이터를 사용한다
  이터레이터(iterator)란?
  이터레이터와 지연평가
   Column : 파이썬 이터레이터 객체
 04. 생성자를 사용한다
  생성자 함수를 정의한다
  생성자 표현식(generator expression)
 05. 고차 함수와 데코레이터
  고차 함수(higher-order functions)란?
  데코레이터(decorator)

Chapter 06. 클래스와 객체 지향 개발
 01. 파이썬에서 클래스 사용하기
  객체와 클래스
  클래스로 객체(인스턴스) 만들기
  인스턴스 이용하기
  객체와 인스턴스
 02. 클래스 만들기
  클래스 정의하기
  인스턴스의 속성
  메쏘드의 정의와 초기화 메쏘드 ‘__init__(?)’
  메쏘드와 제1인수 ‘self’
   Column : self 정의를 잊어버리면
  속성의 은폐
   Column : 제1인수 self

Chapter 07. 클래스 상속과 고급 객체 지향 기능
 01. 클래스를 상속한다
  슈퍼클래스(superclass)를 지정
  메쏘드의 오버라이드(재정의)
  초기화 메쏘드의 오버라이드
  super(?)를 사용한 슈퍼클래스의 취득
  슬롯(Slot)
  프로퍼티(property)
 02. 특수 메쏘드를 이용한다
  특수 메쏘드를 정의한다
 03. 내장형을 상속하다
  딕셔너리형을 상속한다

Chapter 08. 모듈
 01. 모듈 파일 만들기
  모듈을 import하는 과정
  파일을 실행할 때만 실행하는 블록
  클래스와 모듈
 02. 모듈의 계층 구조(패키지)
  패키지의 실체
  패키지를 만든다
 03. 모듈을 이용할 때의 주의점
  from문을 사용한 import의 폐해
  모듈 검색 순서
 04. 서드파티 모듈을 사용하기
  모듈 찾는 방법
  pi

출판사 서평

파이썬 창시자의 메시지

I am happy to welcome the programmers of Japan to the worldwide community of Python users. Python is a wonderfully versatile language, and you will find new applications for it all the time. I hope that after reading this book you will create masterpieces of Python programming. Have fun!

여러분을 세계적인 파이썬 사용자 커뮤니티에 영입하게 되어 매우 기쁩니다. 파이썬은 매우 유용하며 용도가 넓은 언어입니다. 매일 파이썬을 이용한 새로운 애플리케이션을 찾을 수 있습니다. 이 책를 읽은 후, 독자 여러분이 파이썬 프로그래밍의 걸작을 만들어 주기를 희망합니다.
자, 즐기세요!

귀도 반 로섬(Guido van Rossum)