21개의 작고 재미난 파이썬 프로젝트
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

이 책은 다른 책들과 달리 명령줄 프로그램을 사용해서 다양한 파이썬의 기능을 설명하고 있다. 각 장마다 문제 형식으로 구성돼 있어, 스스로 문제를 풀 수 있도록 유도한다. 설명만 잘 따라간다면 혼자서도 문제를 해결할 수 있을 것이다. 책을 읽지만 말고 꼭 주어진 문제를 스스로 해결해보자. 실력이 느는 것은 물론이요, 주어진 테스트를 통과(pass)했을 때 느끼는 성취감은 황홀할 정도다.
아울러 이 책은 잘 구조화되고 문서화돼 있으며, 테스트할 수 있는 코드를 파이썬으로 작성하는 방법을 알려준다. 테스트 주도 개발(test-driven development)처럼 실무에서 사용되고 있는 기술도 소개한다. 그리고 문서를 읽는 방법과 파이썬 개선 제안서(Python Enhancement Proposal, PEP) 참고 방법 등을 소개하며, 다른 파이썬 개발자도 쉽게 이해할 수 있는 코드 작성법에 대해서도 알려준다.
어떤 방식을 사용하든지 이 책에 있는 모든 코드는 직접 입력해 보자. 이를 통해 기억 근육을 단련할 수 있을 뿐만 아니라 언어가 가진 문법을 이해할 수 있을 것이다.
이 책에서 다루는 프로젝트의 규모는 비록 작지만, 얻을 수 있는 보상은 너무나도 크다. 챕터마다 새로운 파이썬 프로그램(패스워드 생성기, 단어 운율기, 셰익스피어식 험담 생성기 등)을 소개하여 독자에게 도전 의욕을 불러일으킨다. 이런 재미있는 실습을 모두 마치면 여러분은 파이썬 초보자가 아니라 자신감 있는 프로그래머로 성장할 수 있을 것이며, 무엇보다 이 과정이 즐거운 기억으로 남게 될 것이다.
이 책의 주요 내용
명령줄에서 파이썬 프로그램 작성하기
파이썬의 데이터 구조 처리하기
무작위성 사용 및 제어하기
프로그램 및 함수용 테스트 코드 작성과 실행하기
각 프로젝트를 위한 테스트 툴 다운로드하기
이 책의 대상 독자
자신의 프로그래밍 실력을 한 단계 더 끌어올리고 싶은 분
다른 언어를 접한 경험은 있지만 파이썬 언어는 처음인 분
작가정보
저자(글) 켄 유엔스-클락
Ken Youens-Clark
애리조나 대학교에서 시니어 연구 프로그래머로 일하고 있다. 컴퓨터 과학을 이용해서 생물학 데이터를 다루는 바이오정보학을 전문으로 하며, 1995년에 입사한 첫 번째 직장에서 데이터베이스와 HTML을 다루기 시작했고, 회사의 메일링 목록과 첫 웹사이트를 구축했다. 이 일로 프로그래밍에 매료되었으며, 윈도우 3.1에서 동작하는 비주얼 베이직 공부를 시작했다. 이후 수년간 다양한 언어와 회사를 거쳐 2001년에 콜드스프링 하버 연구소(Cold Spring Harbor Laboratory)의 바이오정보학 그룹에 입사했다. 2014년에는 애리조나 대학교에서 일하기 위해 애리조나의 투손(Tucson)으로 거처를 옮겼고, 2019년에 바이오시스템 공학 석사 학위를 취득했다. 코딩을 하지 않을 때는 악기를 연주하거나 자전거, 요리, 독서 등을 즐기면서 가족과 함께 시간을 보낸다.
네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사 학위를 취득했다. 약 15년간 일본, 한국, 싱가포르에서 IT 및 GIS/LBS 분야 업무를 담당했다. 일본에서는 일본 외무부, 국토지리정보원 같은 정부기관을 대상으로 한 시스템 통합(SI) 업무를 담당했으며, 야후 재팬으로 직장을 옮겨 야후맵 개발 담당 시니어 엔지니어로 근무했다. 한국에서는 SK에서 T맵 등 내비게이션 지도 데이터 담당 매니저로 근무했으며, 현재는 싱가포르에서 독일계 회사의 솔루션 아키텍트로 근무하고 있다. 저서로는 《나는 도쿄 롯폰기로 출근한다》가 있으며, 역서로는 《알고리즘 도감》, 《처음 만나는 HTML5 & CSS3》, 《인공지능 70》, 《처음 만나는 자바스크립트》, 《다양한 언어로 배우는 정규표현식》, 《그림으로 공부하는 IT 인프라 구조》, 《그림으로 공부하는 시스템 성능 구조》 등 40여 종이 있다.
목차
- 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
기본정보
ISBN | 9791191600346 | ||
---|---|---|---|
발행(출시)일자 | 2021년 08월 11일 | ||
쪽수 | 532쪽 | ||
크기 |
189 * 245
* 30
mm
/ 1015 g
|
||
총권수 | 1권 | ||
원서명/저자명 | Tiny Python Projects/Ken Youens-Clark |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립