책소개
200개의 예제로 파이썬 마스터하기!이 책은 파이썬에 처음 입문하는 초보자를 위해 쓰였으며, 파이썬에 익숙한 독자도 특정 개념에 대한 설명이 필요할 때마다 손쉽게 내용을 찾을 수 있도록 사전식으로 구성되어 있다. 22장, 200개의 주제로 되어 있으며 파이썬과 에디터 프로그램 설치부터 시작해 차근차근 배워나가며 파이썬 기초를 다질 수 있게 했다.특히 이번 2판은 전면 컬러로 개정되며 예제 코드를 이해하기 수월해졌고, 그림 설명이 대폭 추가되어 개념을 한눈에 이해할 수 있도록 도왔다. 또한 1판에서 5개의 파트로 구성한 것과 다르게 2판에서는 22개의 파트로 구성하여, 보다 자세하고 체계적으로 학습할 수 있게 했다. 1장에서 대표적인 파이썬 코딩 도구를 배우고 난 뒤 2장에서 기초 구문을, 3장과 4장에서 제어문과 연산자를 배운다. 5장부터 12장에서는 파이썬의 다양한 자료형과 각 자료형에서 사용할 수 있는 내장함수 및 메서드를 배운다. 13장부터 16장까지 함수와 클래스, 패키지, 디렉토리 등을 배우고 19장에서 정규표현식에 대해 간략하게 학습한다. 그리고 앞에서 배운 내용을 활용하여 20장부터 22장까지 네트워크, 동시 실행, 프로그래밍 실습을 진행한다. 특히 소스 코드를 주요 라인별로 해석해, 각 코드가 어떤 역할을 하고 어떻게 변형해 응용할 수 있을지 꼼꼼하게 배울 수 있도록 했다.
저자소개
서울대학교 지질과학과, 동대학원 지구물리학 석사를 졸업하였으며, 우주항공분야 벤처, 임베디드 소프트웨어, 콘텐츠 전송 네트워크 전문 기업에서 소프트웨어 개발을 담당하였다. 파이썬으로 P2P 기반 하이브리드 콘텐츠 전송 시스템을 개발하여 실서비스에 적용하였고, 티맥스소프트에서 기업용 솔루션 전문 컨설턴트로 활동하였다. 파이썬을 활용한 기업 정보 보안, 컴퓨터 비전, 머신러닝/딥러닝/AI에 대한 기술을 연구하였고, 현재는 효성인포메이션시스템 솔루션 개발 팀장으로 근무하고 있다. 저서로는 『화이트 해커를 위한 암호와 해킹』 『초보자를 위한 파이썬 200제』 등이 있다.
목차
1장 파이썬 코딩 도구001 대화식 모드로 프로그래밍 하기 002 IDLE 에디터로 프로그래밍 하기 003 주피터 노트북으로 프로그래밍 하기 2장 기초 구문004 변수 005 주석 처리하기 006 자료형 개념 007 자료형 출력: print() 008 자료형 크기: len() 009 자료형 확인: type() 010 타입 어노테이션(Type Annotation) 011 사용자 입력: input() 012 들여쓰기 013 None 상수 014 True, False3장 제어문015 if문: if~elif~else 016 for문: for~continue~break 017 for문: for~else 018 while문: while~continue~break 019 pass문 020 match문: match~case 4장 연산자021 수치연산자: +, -, *, /, **, //, % 022 연산자 축약: +=, -=, *=, /= 023 비교연산자: ==, !=, 〈, 〈=, 〉, 〉= 024 논리연산자: and, or, not 025 비트연산자: &, |, ^, 〉〉, 〈〈 5장 수치 자료형(Numerical Types)026 정수, 실수: int, float 027 복소수: complex 028 절대값 구하기: abs() 029 몫과 나머지 구하기: divmod() 030 반올림 수 구하기: round() 031 수치 자료형 변환: int(), float(), str() 032 10진수를 16진수로 변환: hex() 033 10진수를 2진수로 변환: bin() 6장 반복 자료형(Iterator Types)034 반복 가능(Iterable) 이해하기 035 이터레이터(Iterator), iter(), next() 이해하기 036 사용자 정의 이터레이터 만들기 037 제너레이터(Generator) 이해하기 038 특정 조건을 만족하는 요소만 추출하기: filter() 039 모든 요소 총합 구하기: sum( ) 040 반복 가능 자료를 리스트로 변환: list( ) 041 모든 요소들에 대해 함수 리턴값 얻기: map() 042 인덱스가 같은 요소끼리 짝짓기: zip() 043 모든 요소가 참인지 확인하기: all(), any() 044 요소 정렬: sorted() 7장 시퀀스 자료형(Sequence Types)045 시퀀스 자료형 종류 및 특성046 순차적 정수열 만들기: range() 047 시퀀스 자료 인덱싱: s[i] 048 시퀀스 자료 슬라이싱: s[i:j] 049 시퀀스 자료 연결/반복: +, * 050 시퀀스 자료에서 최대/최소 요소 구하기: max(), min() 051 시퀀스 자료에서 특정 요소 개수: s.count() 052 시퀀스 자료에서 요소 체크: in, not in 053 시퀀스 자료의 특정 요소 인덱스 구하기: s.index() 054 (인덱스, 요소) 생성: enumerate() 055 시퀀스 자료 역순 만들기: reversed() 8장 리스트와 튜플056 리스트의 요소값 변경: list[i] = x 057 리스트에서 요소 삭제하기 ①: del list[i] 058 리스트에서 요소 삭제하기 ②: list.remove() 059 리스트의 모든 요소 삭제하기: list.clear() 060 리스트 복사하기: list.copy() 061 리스트 확장하기: list.extend() 062 리스트에 요소 삽입하기: list.insert() 063 리스트 맨 마지막에 요소 추가하기: list.append() 064 리스트에서 특정 위치 요소 추출 후 삭제: list.pop() 065 리스트 요소를 역순으로 만들기: list.reverse() 066 리스트 요소 정렬: list.sort() 067 리스트 요소 무작위로 섞기: random.shuffle() 068 리스트로 스택 구현하기 069 리스트로 큐 구현하기 070 튜플 이해하기 9장 문자열071 문자열(String) 객체 072 유니코드 문자열 073 문자 코드값 구하기: ord() 074 코드값에 대응하는 문자 얻기: chr() 075 이스케이프 문자 076 문자열 포맷팅 방법 ①: f‘ ’ 077 문자열 포맷팅 방법 ②: str.format() 078 문자열에서 특정 문자열 위치 찾기: str.find() 079 문자열이 언어 문자로만 구성되었는지 확인: str.isalpha() 080 문자열이 숫자로만 구성되었는지 확인: str.isdecimal(), str.isdigit(), str.isnumeric()081 문자열로 리스트 요소 연결하기: str.join() 082 문자열을 구분자로 분리하기: str.split() 083 문자열에서 좌우 문자/공백 제거하기: str.strip(), str.lstrip(), str.rstrip() 084 문자열에서 특정 문자열을 다른 문자열로 바꾸기: str.replace() 085 문자열의 왼쪽을 0으로 채우기: str.zfill() 086 숫자 왼쪽에 0을 채워서 문자열로 만들기: format() 087 문자열에서 대소문자 변환하기: str.upper(), str.lower() 088 문자열 정렬하기: sorted(), ‘’.join() 089 문자열로 된 식 실행하기: eval() 090 문자열에서 주어진 접두어/접미어 제거하기: str.removeprefix(), str.removesuffix() 091 문자열을 바이트 문자열로 변환하기: str.encode() 10장 바이트(Bytes) 문자열092 바이트 문자열 이해하기 093 16진수 표시 문자열을 바이트 문자열로 변환: bytes.fromhex() 094 바이트 문자열을 16진수 표시 문자열로 변환: bytes.hex() 095 바이트 문자열을 유니코드 문자열로 변환: bytes.decode() 096 바이트 문자열 주요 메서드들 11장 set(집합) 자료형097 set 자료 이해하기 098 set 연산: |, &, -, ^ 099 set에 요소 추가: set.add() 100 set에서 요소 제거 ①: set.remove() 101 set에서 요소 제거 ②: set.discard() 102 set에서 랜덤 요소 추출: set.pop() 103 set의 모든 요소 제거: set.clear() 12장 딕셔너리(Dictionary)104 딕셔너리 객체: dict() 105 딕셔너리에서 값 추출하기 ①: d[key] 106 딕셔너리에서 값 추출하기 ②: d.get() 107 딕셔너리의 모든 키를 리스트로 만들기: list(d)108 딕셔너리에 요소 추가하기: d[key]=val 109 딕셔너리에 요소를 추가하고 값을 얻기: d.setdefault() 110 딕셔너리의 특정 요소 제거하기: del d[key] 111 딕셔너리에 특정 키가 존재하는지 확인: key in d 112 딕셔너리에 특정 키가 없는지 확인: key not in d 113 딕셔너리의 모든 키로 이터레이터 생성: iter(d) 114 딕셔너리의 모든 요소 삭제: d.clear() 115 딕셔너리의 모든 요소 복제: d.copy() 116 딕셔너리의 모든 요소 조회하기: d.items() 117 딕셔너리의 모든 키 조회하기: d.keys() 118 딕셔너리의 모든 값 조회하기: d.values() 119 딕셔너리에서 모든 키의 순서를 거꾸로 하기: reversed(d) 120 딕셔너리에서 요소를 제거한 후 값 또는 요소 얻기: d.pop(), d.popitem() 121 딕셔너리 갱신하기 ①: d.update() 122 딕셔너리 갱신하기 ②: d1 | d2, d1 |= d2 123 딕셔너리 요소 정렬하기: sorted() 13장 함수(Function)124 함수 정의: def 125 함수의 매개변수와 인자 126 지역변수와 전역변수: global 127 함수 처리 결과 리턴: return 128 이름없는 한 줄짜리 함수 만들기: lambda 129 함수의 타입 어노테이션 130 데코레이터: @ 14장 클래스(Class)131 클래스 개념 132 클래스 변수와 인스턴스 변수 133 메서드(Method) 134 클래스 생성자(Constructor) 135 클래스 소멸자(Destructor) 136 클래스 상속 15장 예외처리137 예외처리 ①: try~except 138 예외처리 ②: try~except~else 139 예외처리 ③: try~except~finally 140 예외처리 ④: try~except Exception as e 141 예외처리 ⑤: try~except 특정예외 142 예외 발생시키기 ①: assert 143 예외 발생시키기 ②: raise 16장 파이썬 모듈과 패키지144 모듈 이해하기 145 패키지 이해하기 146 모듈 임포트: import, import~as, from~import 147 파이썬 내장 모듈 vs. 외부 모듈 148 외부 모듈/패키지 설치 도구: pip 149 if __name__ == ‘__main__’: 17장 파일/디렉토리150 파일 열고 닫기: f.open(), f.close() 151 파일을 열고 자동으로 닫기: with open() as f 152 파일 읽기: f.read() 153 파일 쓰기: f.write() 154 파일의 특정 부분만 읽고 복사: f.seek() 155 텍스트 파일 한 라인씩 읽기: f.readline(), f.readlines() 156 텍스트 파일 저장하기: f.writelines() 157 바이너리 파일 복사하기: f.read(), f.write() 158 파일 크기 구하기: os.path.getsize() 159 파일 삭제하기: os.remove()160 파일 이름 변경/파일 이동: os.rename() 161 디렉토리에 존재하는 파일 목록 얻기: os.listdir(), glob.glob() 162 현재 작업 디렉토리 확인, 작업 디렉토리 변경: os.getcwd(), os.chdir() 163 디렉토리 생성 및 제거: os.mkdir(), os.rmdir() 164 하위 디렉토리 및 파일 전체 삭제: shutil.rmtree() 165 파일이 존재하는지 체크: os.path.exists() 166 파일인지 디렉토리인지 체크: os.path.isfile(), os.path.isdir() 167 JSON 파일 다루기 218장 시간/날짜168 프로그램 실행 소요 시간 계산: time.time() 169 주어진 시간동안 일시정지: time.sleep() 170 현재 시간을 연-월-일 시: 분:초로 출력하기: time.localtime(), time.strftime() 171 올해의 경과된 날짜 수 계산: time.localtime() 172 오늘의 요일 계산하기: time.localtime() 19장 정규표현식173 정규표현식 개념 174 정규표현식 응용 20장 네트워크175 에코 서버 만들기: socket176 에코 클라이언트 만들기: socket 177 향상된 에코 서버 만들기: socketserver 178 향상된 에코 클라이언트 만들기: socket 179 웹사이트에 접속하여 HTML 페이지를 파일로 저장: urllib.request.urlopen() 180 HTTP 헤더 조작하기: requests 181 인터넷에 있는 이미지를 내 PC에 저장하기 21장 동시 실행 프로그래밍182 동시 실행(Concurrent Execution) 개념 183 멀티스레드 프로그래밍: threading 184 멀티프로세스 프로그래밍: multiprocessing 185 비동기 호출 인터페이스: concurrent.futures 186 비동기 함수 구현하기: asyncio, async, await 22장 프로그래밍 실습187 opencv를 활용하여 마우스로 도형 그리기 ① 188 opencv를 활용하여 마우스로 도형 그리기 ② 189 matplotlib을 활용한 데이터 시각화 실습 ① 190 matplotlib을 활용한 데이터 시각화 실습 ② 191 Basemap을 활용하여 지도 출력하기 192 지진 발생 지역 지도에 표시하기 193 기상 정보 지도에 표시하기 194 웹 기반 로또 번호 추출기 만들기 195 웹 기반으로 지진 발생 지역 보기 196 파일 전송 서버 만들기 197 파일 수신 클라이언트 만들기 198 채팅 서버 만들기 199 채팅 클라이언트 만들기 200 ChatGPT API를 활용해서 간단한 챗봇 만들기