전 세계적으로 인정받은 (파이썬) 프로그래밍 입문서!

간결한 문법과 강력한 기능이 돋보이는 파이썬(Python)은 오늘날 가장 인기 있는 프로그래밍 언어로서 프로그래밍 입문자는 물론 전문 프로그래머들의 사랑을 독차지하고 있다.

이 책에서는 파이썬에 매료된 저자와 그의 아들이 함께 프로그래밍을 배워나가면서 간단한 프로그램부터 그래픽과 사운드가 가미된 게임까지 만드는 과정을 그렸다. 컴퓨터 프로그래밍을 처음 접하는 이들의 눈높이에 맞춰 프로그래밍의 개념과 원리를 친절하고 상세하게 소개함으로써 프로그래밍의 핵심 원리를 단계별로 이해하고, 프로그래밍 언어의 구조와 원리뿐 아니라 문제 해결과 이를 위한 사고 방식을 자연스럽고 체계적으로 익힐 수 있다.

이 책은 전 세계적으로 호평받은 『헬로! 파이썬 프로그래밍』의 개정판으로서, 전면 컬러로 바뀌어 코드를 이해하기가 훨씬 수월해졌다. 그뿐만 아니라 파이썬 2와 파이썬 3의 차이점을 비롯해 개선된 GUI 제작 기법, 딕셔너리, 인공지능 등 다양하고 깊이 있는 내용까지 더해져서 프로그래밍을 처음 시작하는 분들이 기초와 실무를 탄탄히 다지는 데 도움될 것이다.

 

추천사

“프로그래밍을 배우는 것이 더 이상 간단할 수 없습니다!”

-- 숀 스테브너, 뉴욕 엔지니어, 인텔

 

“남녀노소를 불문하고 프로그래밍을 배우고자 하는 모두에게 적합한 책”

-- 벤 움스, 소프트웨어 엔지니어, 소게티

 

“이 책의 초판이 나온 이후로 저희 학생들에게 이 책을 추천해오고 있습니다.”

-- 데이브 브리세티, 소프트웨어 개발자이자 교사

 

상세 이미지

상세 이미지

파이썬으로 쉽고 재미있게 프로그래밍 배우기

컴퓨터 언어로 컴퓨터와 대화하는 법을 배우세요! 게임을 만들거나 사업을 시작하거나 중요한 문제를 풀고 싶다면 첫 번째 단계는 여러분만의 프로그램을 작성하는 법을 배우는 것입니다. 프로그래밍은 재미있는 도전이며, 시작하기도 쉽습니다!

『헬로! 파이썬 프로그래밍』의 개정판인 이 책에서는 컴퓨터 프로그래밍의 세계를 명료하고 매력적인 방식으로 소개합니다. 워렌 산데와 그의 아들인 카터가 쓴 이 책은 사고와 학습을 돕는 예제로 가득합니다. 전문 교육자가 검토한 이 책은 어린이와 어른들에게서 검증받은 책입니다.

이 책을 읽기에 앞서 미리 알아둬야 할 프로그래밍 지식은 없으며 기초적인 컴퓨터 사용법만 알면 됩니다. 프로그램을 실행하고 파일을 저장할 수 있다면 바로 이 책을 시작할 수 있습니다!

★ 이 책의 특징 ★

  • 개념들을 명료하게 설명합니다.
  • 그림, 만화, 재미있는 예제가 가득합니다.
  • 간단한 퀴즈와 연습 문제가 들어있습니다.
  • 컬러로 된 아름다운 삽화가 들어있습니다.

워렌 산데 (Warren Sande)

워렌 산데는 전자기기 엔지니어로서 파이썬을 만능 스크립트 언어이자 컴퓨터와 프로그래밍을 가르치는 도구로 사용하고 있습니다.

카터 산데 (Carter Sande)

카터 산데는 기술에 대한 열정이 많은 고등학생입니다. 학교 네트워크를 고치거나 친구들의 숙제 파일을 복구하지 않을 때는 자전거를 타거나 복고풍 비디오 게임을 만드는 것을 즐깁니다.

이대엽

책 만드는 일을 하고 있으며, 이따금 IT 관련 서적을 번역하기도 한다. 옮긴 책으로 『자바 API 디자인』 『풀스택 자바스크립트 개발』 『테스트 주도 개발로 배우는 객체 지향 설계와 실천』 『자바스크립트 개론』 『모듈라 자바』 『시작하세요! 맥 OS X 라이언』 『도메인 주도 설계』 『하이버네이트 완벽 가이드』 『개념을 잡아주는 프로그래밍 정석』 등이 있다.

  • ▣ 01장: 시작하기
    • 파이썬 설치
    • IDLE을 이용해 파이썬 시작하기
    • 명령을 내려 주세요
    • 프로그램이 동작하지 않는다면
    • 파이썬과의 상호작용
    • 프로그래밍할 시간
    • 첫 번째 프로그램 실행하기
    • 뭔가가 잘못됐다면
      • 구문 오류
      • 런타임 오류
    • 두 번째 프로그램
    •  
  • ▣ 02장: 기억하세요 - 메모리와 변수
    • 입력, 처리, 출력
    • 이름
    • 이름 안에는 뭐가 들었을까?
    • 숫자와 문자열
      • 긴 문자열
    • 왜 ‘변수’인가?
    • 새로운 나
    •  
  • ▣ 03장: 기초 수학
    • 4가지 기초 연산
    • 연산자
    • 연산의 순서
    • 연산자 두 개 더
      • 지수 연산 - 제곱
      • 나머지 연산 - 나머지 구하기
      • 증가 연산자와 감소 연산자
    • 정말로 큰 수와 정말로 작은 수
      • E-표기법
      • 지수승 vs. E-표기법
    •  
  • ▣ 04장: 자료형
    • 자료형 바꾸기
      • 정수를 실수로 바꾸기
      • 실수를 정수로 바꾸기
      • 문자열을 실수로 바꾸기
    • 정보를 더 얻는 방법: type()
    • 형변환 오류
    • 형변환 이용하기
    •  
  • ▣ 05장: 입력
    • raw_input()
    • print 명령어와 콤마
      • 더 간편한 raw_input() 입력 요청 메시지
    • 숫자 입력하기
      • int()와 raw_input() 함께 쓰기
    • 웹에서 입력받기
    •  
  • ▣ 06장: GUI(그래픽 사용자 인터페이스)
    • GUI란?
    • 첫 번째 GUI
      • EasyGui 설치
      • 파이썬 경로
      • GUI 만들기
    • GUI 입력
    • 좋아하는 맛 고르기
      • 버튼이 여러 개인 대화상자
      • 선택 상자
      • 텍스트 입력
      • 기본 입력
      • 숫자 입력
    • 숫자 알아맞히기 게임... 한번 더!
    • 기타 GUI 요소
    •  
  • ▣ 07장: 판단과 결정
    • 테스트
    • 들여쓰기
    • 내 눈엔 두 개로 보이는데?
    • 다른 종류의 검사
    • 검사 결과가 거짓이면 어떻게 될까?
    • 조건을 2개 이상 검사하기
    • and 사용하기
    • or 사용하기
    • not 사용하기
    •  
  • ▣ 08장: 반복문
    • 계수 반복
      • 폭주하는 반복문
      • 대괄호의 용도
    • 계수 반복문 사용하기
    • 손쉬운 방법 - range()
    • 스타일의 문제 - 반복 변수명
      • 더 쓰기 쉬운 range()
    • 간격을 두고 세기
    • 숫자 없이 세기
    • 조건을 만족하는 동안
    • 반복문에서 벗어나기 - break와 continue
      • 앞으로 건너뛰기 - continue
      • 빠져 나오기 - break
    •  
  • ▣ 09장: 주석
    • 주석 추가하기
    • 한 줄 주석
    • 줄 끝 주석
    • 여러 줄 주석
    • 삼중 따옴표 문자열
    • 주석 스타일
    • 이 책의 주석
    • 주석 처리
    •  
  • ▣ 10장: 게임할 시간
    • 스키어
    •  
  • ▣ 11장: 중첩 반복문과 가변 반복문
    • 중첩 반복문
    • 가변 반복문
    • 가변 중첩 반복문
    • 훨씬 더 가변적인 중첩 반복문
    • 중첩 반복문 사용하기
    • 열량 계산하기
    •  
  • ▣ 12장: 함께 모으기 - 리스트와 딕셔너리
    • 리스트란?
    • 리스트 만들기
    • 리스트에 항목 추가하기
    • 점은 뭘까?
    • 리스트는 무엇이든 담을 수 있다
      • 인덱스는 왜 1이 아닌 0부터 시작할까?
    • 리스트 “자르기”
      • 간편한 잘라내기
    • 항목 수정하기
    • 리스트에 항목을 추가하는 다른 방법
      • 끝에 추가하기: append()
      • 리스트 확장하기: extend()
      • 항목 삽입하기: insert()
      • append()와 extend()의 차이점
    • 리스트에서 삭제하기
      • remove()를 이용한 삭제
      • del을 이용한 삭제
      • pop()을 이용한 삭제
    • 리스트에서 찾기
      • in 키워드
      • 인덱스 찾기
    • 리스트 순회하기
    • 리스트 정렬하기
      • 역순으로 정렬하기
      • 정렬하는 또 다른 방법: sorted()
    • 변경 가능한 것과 변경 불가능한 것
      • 튜플: 불변 리스트
    • 리스트의 리스트: 데이터 테이블
      • 테이블에서 값 하나 가져오기
    • 딕셔너리
    •  
  • ▣ 13장: 함수
    • 함수: 집짓기 블록
      • 함수 만들기
    • 함수 호출하기
    • 함수에 인자 전달하기
    • 인자가 두 개 이상인 함수
      • 몇 개가 적당할까?
    • 값을 반환하는 함수
      • 값 반환하기
    • 변수 유효범위
      • 지역 변수
      • 전역 변수
    • 함수 안에서 전역 변수 사용하기
    • 변수명 짓기에 대한 조언
    •  
  • ▣ 14장: 함수
    • 현실 세계의 객체
    • 파이썬의 객체
      • 속성이란?
      • 메서드란?
    • 객체 = 속성 + 메서드
    • 점은 무엇입니까?
    • 객체 만들기
      • 객체의 인스턴스 만들기
      • 객체 초기화
      • “마법” 메서드: str()
      • self란?
    • 예제 클래스 - HotDog
    • 데이터 숨기기
    • 다형성과 상속
      • 다형성: 동일한 메서드, 다른 동작 방식
      • 상속: 부모로부터 배우기
    • 미리 생각해보기
    •  
  • ▣ 15장: 모듈
    • 모듈이란?
    • 왜 모듈을 사용할까?
    • 블록을 담는 통
    • 모듈은 어떻게 만들까?
    • 모듈은 어떻게 사용할까?
    • 이름공간
      • 이름공간이란?
      • 이름공간 가져오기
      • from을 이용한 가져오기
      • 휴!
    • 표준 모듈
    • 시간
    • 난수
    •  
  • ▣ 16장: 그래픽
    • 도움 얻기 - 파이게임
    • 파이게임 창
    • 창 안에 그리기
      • ‘플립’이란?
      • 원을 만드는 법
      • 파이게임 표면
      • 파이게임에서 색상 다루기
      • 위치: 화면 좌표
      • 도형의 크기
      • 선 두께
      • 현대 미술?
    • 개별 픽셀
      • 점 잇기
      • 다시 한 번 점 잇기
      • 점으로 그리기
    • 이미지
    • 공을 움직여 봅시다!
    • 애니메이션
      • 이미지 지우기
      • 밑에는 뭐가 있을까?
    • 더 부드러운 애니메이션
      • 공이 계속 움직이게 하기
    • 공 튕기기
      • 2D로 튕기기
    • 공이 돌아서 나오게 만들기
    •  
  • ▣ 17장: 스프라이트와 충돌 감지
    • 스프라이트
      • 스프라이트란?
      • 스프라이트 클래스
      • move() 메서드
    • 쿵! 충돌 감지
      • 사각 영역 충돌 vs. 픽셀 단위 충돌
    • 시간 재기
      • pygame.time.Clock()을 이용한 프레임률 조절
      • 프레임률 검사하기
    • 프레임률 조절하기
    •  
  • ▣ 18장: 새로운 종류의 입력 - 이벤트
    • 이벤트
      • 이벤트 루프
      • 이벤트 큐
      • 이벤트 처리자
    • 키보드 이벤트
      • 키 이벤트
      • 반복 키
      • 이벤트 이름과 키 이름
    • 마우스 이벤트
    • 타이머 이벤트
    • 다른 게임을 해볼 시간: 파이퐁(PyPong)
      • 패들
      • 패들 조종
      • 점수 기록 및 pygame.font를 이용한 점수 표시
      • 생명 관리하기
      • 생명 카운터 추가하기
      • 게임 종료
    •  
  • ▣ 19장: 사운드
    • 파이게임 활용하기 - mixer
    • 사운드 만들기 vs. 사운드 재생하기
    • 사운드 재생
      • pygame.mixer 시작하기
    • 볼륨 조절
      • 배경음악 재생하기
    • 음악 반복하기
    • 파이퐁에 사운드 추가하기
    • 더 익살스러운 사운드
    • 파이퐁에 음악 추가하기
    •  
  • ▣ 20장: GUI 더 알아보기
    • PyQt 활용하기
      • Qt 디자이너
      • 버튼 추가하기
      • 버튼 변경하기
      • GUI 저장하기
    • GUI 작동시키기
    • 이벤트 처리자의 귀환
      • self란?
    • 버튼 움직이기
    • 더 유용한 GUI
    • TempGUI
      • TempGUI 컴포넌트
      • 새 GUI 만들기
      • 섭씨를 화씨로 변환하기
      • 화씨를 섭씨로 변환하기
      • 작은 개선
      • 버그 때려잡기
    • 메뉴에 뭐가 있죠?
      • 메뉴 항목 추가하기
      • 단축키
    •  
  • ▣ 21장: 출력 서식 지정과 문자열
    • 새로운 줄
      • print와 콤마
      • 줄바꿈 추가하기
      • 특별한 출력 코드
    • 수평 간격: 탭
      • 백슬래시를 출력하는 법
    • 문자열에 변수 넣기
    • 숫자 서식 지정
      • 정수: %d나 %i
    • 수: %f나 %F
      • E-표기법: %e와 %E
      • 실수 표기법이나 E-표기법 자동으로 선택하기: %g와 %G
      • 퍼센트 기호 출력하기
      • 여러 개의 서식 문자열
      • 서식 지정된 숫자 저장하기
    • 새로운 방식의 서식 지정
      • format() 메서드
      • 문자열 조작
      • 문자열 분리하기
      • 문자열 합치기
      • 문자열 검색
      • 문자열 내 아무 곳에서나 찾기: in과 index()
      • 문자열에서 일부분 삭제하기
      • 대소문자 바꾸기
    •  
  • ▣ 22장: 파일 입출력
    • 파일이란?
    • 파일명
    • 파일의 위치
      • 현재 위치 찾기
      • 경로 이야기는 이제 그만!
    • 파일 열기
    • 파일 읽기
      • 한 번에 한 줄씩 읽기
      • 처음으로 되돌아가기
    • 텍스트 파일과 바이너리 파일
    • 파일에 쓰기
      • 파일에 추가하기
      • 파일에 쓰기
      • print를 이용해 파일에 쓰기
    • 파일에 저장하기: pickle
    • 피클링
      • 언피클링
    • 다시 게임 할 시간: 행맨
      • 행맨 GUI
      • 단어 목록에서 단어 가져오기
      • 사람 보여주기
      • 글자 추측 검사하기
    •  
  • ▣ 23장: 기회를 잡아라 - 무작위성
    • 무작위성이란?
    • 주사위 굴리기
      • 여러 개의 주사위
      • 10번 연속된 사건
    • 카드 패 만들기
      • 카드 패 섞기
      • 카드 객체
    • 크레이지 8
      • 주 반복문
      • 뒤집힌 카드
      • 유효한 무늬
      • 플레이어 차례
      • 손에 든 카드 보여주기
      • 플레이어의 선택 확인하기
      • 컴퓨터 차례
      • 점수 관리하기
    •  
  • ▣ 24장: 컴퓨터 시뮬레이션
    • 현실 세계 모델링하기
    • 달 착륙선
      • 착륙 시뮬레이션하기
      • 파이게임의 귀환
    • 시간 관리
    • 시간 객체
      • 두 시간의 차이
      • 짧은 단위의 시간
    • 시간을 파일에 저장하기
    • 가상 애완동물
    • GUI
      • 알고리즘
      • 간단한 애니메이션
      • 시도하고, 또 시도하기
    •  
  • ▣ 25장: 스키어 설명
    • 스키어
    • 장애물
      • 개별 장애물 만들기
      • 장애물 지도 만들기
    •  
  • ▣ 26장: 파이썬 전투
    • 파이썬 전투
      • 파이썬 전투 실행하기
      • 게임 규칙
    • 파이썬 전투 로봇 만들기
    • 좀 더 복잡한 로봇
    • 좌표계
      • 방향
      • calculateCoordinates()
    •  
  • ▣ 27장: 또 뭘 배워야 할까?
    • 초급 프로그래머를 위한 자료
    • 파이썬
    • 게임 프로그래밍과 파이게임
    • 기타 게임 프로그래밍(파이썬 이외의 환경)
    • BASIC
    • 모바일 앱
    • 주위를 둘러보세요
    •  
  • ▣ 부록 A장: 변수 명명규칙
    •  
  • ▣ 부록 B장: print
    • 파이썬 2와 파이썬 3의 차이점
    • input()
    • 정수 나눗셈
    • range()
    • 파이썬 2에서 파이썬 3으로 변환하기
    •  
  • ▣ 부록 C장: 연습 문제 해답
  • 29쪽, 설치 프로그램 다운로드

    http://www.helloworldbook2.com/

    을 다음 URL로 대체

    http://helloworldbookblog.com/

  • 32쪽, 말풍선

    print랑 다르게 print는 오렌지 색깔이 아니네요. --> print랑 다르게 pront는 오렌지 색깔이 아니네요.

  • 106쪽, 표 7.1

    += 항목: 숫자에 1을 더합니다. --> 숫자를 증가시킵니다.

    -= 항목: 숫자에서 1을 뺍니다. --> 숫자를 감소시킵니다.

  • 105쪽, not 사용하기 예제는 다음 코드로 대체

    age = float(raw_input("Enter your age: "))
    if not (age < 8):
        print "You are allowed to play this game."
    else:
        print "Sorry, you can't play the game."
    
  • 164쪽, 첫 번째 줄

    메서드의 중괄호 안에 --> 메서드의 소괄호 안에

  • 173쪽, 첫 번째 예제 바로 다음 줄

    리스트에 사용하는 대괄호 대신 중괄호를 사용하면 됩니다. --> 리스트에 사용하는 대괄호 대신 소괄호를 사용하면 됩니다.

  • 205쪽, 맨 하단에 아래 예제를 추가

    myBall.color = yourBall.color
    
  • 219쪽, 6번째 줄

    이름이 같은 두 개(또는 그 이상)의 클래스

    ==>

    이름이 같은 두 개(또는 그 이상)의 메서드

  • 303쪽, 맨 하단 부분에 <용어 설명> 추가

    (용어 설명) 컴퓨터 그래픽에서 렌더링(render)은 무언가를 그려서 보이게 만드는 것을 의미합니다.

  • 341쪽, 본문 불릿 목록의 1번 항목

    버튼의 objectName 속성을 btnFtoC로 변경합니다. --> 버튼의 objectName 속성을 btn_FtoC로 변경합니다.

  • 341쪽, 본문 불릿 목록의 2번 항목

    버튼의 objectName 속성을 btnCtoF로 변경합니다. --> 버튼의 objectName 속성을 btn_CtoF로 변경합니다.

  • 348쪽, 밑에서 8번째 줄

    이름은 action_CtoF입니다. --> 이름은 actionC_to_F입니다.

  • 348쪽, 밑에서 4번째 줄 코드

    self.action_CtoF.triggered.connect(self.btn_CtoF_clicked)

    -->

    self.actionC_to_F.triggered.connect(self.btn_CtoF_clicked)

  • 349쪽, 예제 20.4

    self.action_CtoF.triggered.connect(self.btn_CtoF_clicked)

    self.action_FtoC.triggered.connect(self.btn_FtoC_clicked)

    -->

    self.actionC_to_F.triggered.connect(self.btn_CtoF_clicked)

    self.actionF_to_C.triggered.connect(self.btn_FtoC_clicked)

  • 527쪽, 5번 문항

    예제 16.16에서 --> 예제 16.6에서

    while 반복문 --> for 반복문

예제 코드 다운로드

설치 프로그램 다운로드

원서 홈페이지

저자가 운영하는 홈페이지

관련 글