간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (25,650원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (21,600원)
(최대할인 4만원 / 2만원 이상 결제)
Close

21개의 작고 재미난 파이썬 프로젝트 : 프로그래밍 스킬, 새로운 알고리즘, 테스트 주도 개발을 배우다

원제 : Tiny Python Projects
소득공제

2013년 9월 9일 이후 누적수치입니다.

공유하기
정가

30,000원

  • 27,000 (10%할인)

    1,500P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 6/9(금) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 상품권

AD

책소개

모든 파이썬 프로그래머를 위해 마련한 코딩 기술을 향상하기 위한 최고의 한 권!

이 책은 다른 책들과 달리 명령줄 프로그램을 사용해서 다양한 파이썬의 기능을 설명하고 있다. 각 장마다 문제 형식으로 구성돼 있어, 스스로 문제를 풀 수 있도록 유도한다. 설명만 잘 따라간다면 혼자서도 문제를 해결할 수 있을 것이다. 책을 읽지만 말고 꼭 주어진 문제를 스스로 해결해보자. 실력이 느는 것은 물론이요, 주어진 테스트를 통과(pass)했을 때 느끼는 성취감은 황홀할 정도다.

아울러 이 책은 잘 구조화되고 문서화돼 있으며, 테스트할 수 있는 코드를 파이썬으로 작성하는 방법을 알려준다. 테스트 주도 개발(test-driven development)처럼 실무에서 사용되고 있는 기술도 소개한다. 그리고 문서를 읽는 방법과 파이썬 개선 제안서(Python Enhancement Proposal, PEP) 참고 방법 등을 소개하며, 다른 파이썬 개발자도 쉽게 이해할 수 있는 코드 작성법에 대해서도 알려준다.

어떤 방식을 사용하든지 이 책에 있는 모든 코드는 직접 입력해 보자. 이를 통해 기억 근육을 단련할 수 있을 뿐만 아니라 언어가 가진 문법을 이해할 수 있을 것이다.

이 책에서 다루는 프로젝트의 규모는 비록 작지만, 얻을 수 있는 보상은 너무나도 크다. 챕터마다 새로운 파이썬 프로그램(패스워드 생성기, 단어 운율기, 셰익스피어식 험담 생성기 등)을 소개하여 독자에게 도전 의욕을 불러일으킨다. 이런 재미있는 실습을 모두 마치면 여러분은 파이썬 초보자가 아니라 자신감 있는 프로그래머로 성장할 수 있을 것이며, 무엇보다 이 과정이 즐거운 기억으로 남게 될 것이다.

이 책의 주요 내용
명령줄에서 파이썬 프로그램 작성하기
파이썬의 데이터 구조 처리하기
무작위성 사용 및 제어하기
프로그램 및 함수용 테스트 코드 작성과 실행하기
각 프로젝트를 위한 테스트 툴 다운로드하기

이 책의 대상 독자
자신의 프로그래밍 실력을 한 단계 더 끌어올리고 싶은 분
다른 언어를 접한 경험은 있지만 파이썬 언어는 처음인 분

목차

CHAPTER 1 파이썬 프로그램 작성 및 테스트 방법 1
1.1 첫 파이썬 프로그램 작성하기 2
1.2 주석 처리 3
1.3 프로그램 테스트하기 3
1.4 #!(셔뱅) 추가하기 7
1.5 실행 가능한 프로그램 만들기 9
1.6 $PATH 이해하기 10
1.7 프로그램 인수 및 도움말 추가하기 13
1.8 옵션 인수 만들기 15
1.9 테스트 프로그램 실행하기 17
1.10 main() 함수 추가하기 17
1.11 get_args() 함수 추가 18
1.12 hello.py 테스트 21
1.13 new.py를 사용해 새로운 프로그램 시작하기 22
1.14 new.py 대신 template.py 사용하기 25

CHAPTER 2 배 위의 망대: 문자열 처리 29
2.1 시작하기 30
2.2 예시 답안 47
2.3 해설 48
2.4 도전 과제 52

CHAPTER 3 소풍 가기: 리스트 사용 55
3.1 프로그램 시작하기 56
3.2 picnic.py 작성하기 58
3.3 리스트 60
3.4 if/elif/else를 사용한 조건 분기문 75
3.5 예시 답안 76
3.6 해설 77
3.7 도전 과제 80

CHAPTER 4 숫자 5 넘어가기: 딕셔너리 사용 81
4.1 딕셔너리 82
4.2 jump.py 작성하기 89
4.3 예시 답안 91
4.4 해설 92
4.5 도전 과제 100

CHAPTER 5 하울러: 파일 및 STDOUT 사용하기 101
5.1 파일 읽기 102
5.2 파일 쓰기 108
5.3 howler.py 작성하기 110
5.4 예시 답안 113
5.5 해설 114
5.6 도전 과제 119

CHAPTER 6 단어 세기: 파일 및 STDIN 읽기, 리스트 반복, 문자열 형식 121
6.1 wc.py 작성하기 123
6.2 예시 답안 129
6.3 해설 130
6.4 도전 과제 133

CHAPTER 7 미지의 세계: 딕셔너리에서 아이템 찾기 135
7.1 gashlycrumb.py 작성하기 137
7.2 예시 답안 141
7.3 해설 142
7.4 도전 과제 146

CHAPTER 8 애플과 바나나: 찾기와 바꾸기 147
8.1 문자열 변경하기 150
8.2 예시 답안 153
8.3 해설 154
8.4 테스트를 통한 리팩토링 173
8.5 도전 과제 173

CHAPTER 9 저주의 전화: 단어 목록에서 무작위 험담 만들기 175
9.1 abuse.py 작성하기 177
9.2 예시 답안 185
9.3 해설 186
9.4 도전 과제 192

CHAPTER 10 전화: 무작위로 문자열 변경하기 193
10.1 telephone.py 작성하기 195
10.2 예시 답안 204
10.3 해설 205
10.4 도전 과제 208

CHAPTER 11 맥주병 노래: 함수 작성 및 테스트 211
11.1 bottles.py 작성하기 212
11.2 예시 답안 221
11.3 해설 223
11.4 도전 과제 229

CHAPTER 12 협박 편지: 텍스트를 무작위로 대문자화하기 231
12.1 ransom.py 작성하기 233
12.2 예시 답안 236
12.3 해설 238
12.4 방법 비교하기 243
12.5 도전 과제 244

CHAPTER 13 12일간의 크리스마스: 알고리즘 디자인 245
13.1 twelve_days.py 작성하기 246
13.2 예시 답안 255
13.3 해설 258
13.4 심화 학습 264

CHAPTER 14 운율 생성기: 정규 표현식을 사용해서 운율 맞추기 267
14.1 rhymer.py 작성하기 270
14.2 예시 답안 282
14.3 해설 284
14.4 도전 과제 291

CHAPTER 15 켄터키 수도사: 정규 표현식 더 배워보기 293
15.1 friar.py 작성하기 296
15.2 예시 답안 309
15.3 해설 311
15.4 도전 과제 314

CHAPTER 16 믹서기: 무작위로 단어의 중간 부분 재정렬하기 317
16.1 scrambler.py 작성하기 319
16.2 예시 답안 326
16.3 해설 328
16.4 도전 과제 331

CHAPTER 17 매드립: 정규 표현식 사용하기 333
17.1 mad.py 작성하기 335
17.2 예시 답안 343
17.3 해설 345
17.4 도전 과제 348

CHAPTER 18 게마트리아: 아스키값을 사용한 텍스트 수치화 349
18.1 gematria.py 작성하기 351
18.2 예시 답안 361
18.3 해설 362
18.4 도전 과제 367

CHAPTER 19 오늘의 운동: CSV 파일 사용하기와 텍스트 테이블 만들기 369
19.1 wod.py 작성하기 371
19.2 예시 답안 384
19.3 해설 386
19.4 도전 과제 393

CHAPTER 20 패스워드 강도: 안전하고 기억하기 쉬운 패스워드 생성하기 395
20.1 password.py 작성하기 398
20.2 예시 답안 410
20.3 해설 413
20.4 도전 과제 417

CHAPTER 21 틱택토 게임: 상태 확인하기 419
21.1 tictactoe.py 작성하기 421
21.2 예시 답안 427
21.3 도전 과제 435

CHAPTER 22 돌아온 틱택토 게임: 타입 힌트를 사용한 대화형 버전 437
22.1 itictactoe.py 작성하기 438
22.2 예시 답안 449
22.3 도전 과제 454

APPENDIX argparse 사용하기 457
A.1 인수의 종류 459
A.2 새로운 프로그램을 만들 때 템플릿 사용하기 460
A.3 argparse 사용하기 461
A.4 argparse 사용 예 466

본문중에서

이 프로그램을 사용하는 사람은 인사 대상을 인수로 전달할 수 있다는 사실을 어떻게 알 수 있을까? 우리는 프로그램에 도움말 기능을 추가해서 이런 정보를 사용자에게 알려줘야 한다. 대부분의 명령줄 프로그램은 -h나 --help라는 인수를 입력하면 도움말을 표시한다. 우리도 다음과 같은 도움말을 표시하면 좋을 것이다. _13p

키가 문자열일 필요는 없다. int나 float 같은 숫자를 사용해도 된다. 단, 값은 항상 변경 불가능한(immutable) 타입이어야 한다. 예를 들어, 앞 장에서 본 것처럼 리스트는 변경 가능한 타입이므로 값으로 사용할 수 없다. 어떤 타입이 변경 불가능한 타입인지 뒤에서 배우게 된다. _88p

명령줄의 인수를 전달하고 검증하는 모든 처리는 get_args()에서 끝내는 것이 내 스타일이다. 특히 argparse는 직접 하면 매우 지루한 여러 작업을 대신해 준다. 예를 들면, 인수가 존재하는지 확인하거나 파일이 읽기 가능한 파일인지(type=argparse.FileType('rt')를 사용하는 이유)를 확인하는 작업이 그렇다. 사용자가 잘못된 인수를 지정한다면 argparse가 오류를 발생시켜서 도움이 되는 메시지를 출력한 후 프로그램을 중단시킨다(이때 오류 코드도 함께 표시한다). _142p

어떤 노래들은 ‘99개 맥주병이 벽장에 있다(99 Bottles of Beer on the Wall)’라는 노래처럼 매우 지겹다. 중학생들이 가득 차 있는 스쿨버스에서 이런 노래를 들은 적이 없길 바란다(필자는 있다). 매우 간단한 노래로, 프로그램으로 만들 수도 있다. 이 프로그램을 통해 숫자를
올려 세거나 내려 세는 방법을 배울 수 있고, 문자열 형식 지정도 할 수 있다. 또한, (이 장에서 처음 배워보는) 함수를 만들고 테스트해 볼 수도 있다. 211p

테스트를 작성할 때는 옳은 데이터와 틀린 데이터를 모두 준비해서 함수와 프로그램을 테스트한다. 위의 테스트 데이터 중 3개는 운율을 만들 수 없다. 빈 문자열(''), 모음이 없는 문자열('RDNZL'), 글자가 없는 문자열('123')이 대상 데이터다. 이 경우는 stemmer() 함수가 튜플을 반환할 때 첫 번째 요소는 소문자 단어이고, 두 번째 요소는 단어의 나머지 부분(rest)으로 빈 문자열이 된다. 운율을 갖지 않는 단어를 처리하는 것은 해당 단어를 호출하는 함수가 어떻게 처리하느냐에 달려 있다. 272p

관련이미지

저자소개

켄 유엔스-클락 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

김완섭 [역] 신작알림 SMS신청
생년월일 -

김완섭은 네덜란드 ITC에서 GIS(지리정보시스템) 연계 재난재해 관리학(석사)을 전공했다.
약 9년간 한국 및 일본 대기업에서 다양한 IT 분야 업무를 담당했다.
일본에서는 시스템 엔지니어로 5년간 근무했으며, 대기업 세콤(SECOM) 계열사인 파스코에서 외무성, 국토지리정보원 등 일본 정부 기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다.
이후 야후재팬으로 직장을 옮겨 야후맵 개발 담당 시니어 엔지니어로 근무하다 2010년 귀국하여 SK에서 내비게이션 데이터 담당 매니저로 근무했다.
저서로는 《나는 도쿄 롯폰기로 출근한다》가 있으며, 역서로는 《그림으로

펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    8.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크커머스 안전결제시스템 (에스크로) 안내

    (주)인터파크커머스의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시 15,000원 이상 무료배송, 15,000원 미만 2,500원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용