1+ {
2+ "metadata" : {
3+ "language_info" : {
4+ "codemirror_mode" : {
5+ "name" : " ipython" ,
6+ "version" : 3
7+ },
8+ "file_extension" : " .py" ,
9+ "mimetype" : " text/x-python" ,
10+ "name" : " python" ,
11+ "nbconvert_exporter" : " python" ,
12+ "pygments_lexer" : " ipython3" ,
13+ "version" : " 3.6.9-final"
14+ },
15+ "orig_nbformat" : 2 ,
16+ "kernelspec" : {
17+ "name" : " python3" ,
18+ "display_name" : " Python 3" ,
19+ "language" : " python"
20+ }
21+ },
22+ "nbformat" : 4 ,
23+ "nbformat_minor" : 2 ,
24+ "cells" : [
25+ {
26+ "source" : [
27+ " Pythonic Code For Coding Test\n " ,
28+ " =============================\n " ,
29+ " Python은 다른 C-Sytle의 언어 (C, C++, JAVA, ...) 와 다른 특별한 문법들이 많습니다.\n " ,
30+ " \n " ,
31+ " 다만 코딩테스트를 위해 Python을 사용하거나, 기본적인 문법만 공부하고 사용하시는 분들은 Python만의 특유의 문법 (Pythonic 한 코드라고도 합니다.)을 잘 활용하지 못하는 경우가 많습니다.\n " ,
32+ " \n " ,
33+ " 이 자료는 다음과 같은 분들에게 추천합니다.\n " ,
34+ " - 파이썬 문법을 알고 있지만 Pythonic한 코드를 작성하는데 어려움을 겪는 분들\n " ,
35+ " - C-Style 언어를 사용하다 코딩 테스트를 위해 Python을 사용하시는 분들\n " ,
36+ " \n " ,
37+ " 꼭 모든 내용을 기억할 필요는 없고, 간단하게 30분 정도 시간을 잡고 읽어보시면서 \" 이런 문법도 있구나!\" 하고 이해하고 넘어가면 좋을 것 같습니다.\n " ,
38+ " \n " ,
39+ " 목차 (예정)\n " ,
40+ " -----------\n " ,
41+ " 내용이 확정되는 대로 작성하겠습니다."
42+ ],
43+ "cell_type" : " markdown" ,
44+ "metadata" : {}
45+ },
46+ {
47+ "source" : [
48+ " ## Unpacking\n " ,
49+ " 파이썬으로 알고리즘 문제를 좀 풀다보면 이 문법은 친숙할겁니다."
50+ ],
51+ "cell_type" : " markdown" ,
52+ "metadata" : {}
53+ },
54+ {
55+ "cell_type" : " code" ,
56+ "execution_count" : null ,
57+ "metadata" : {},
58+ "outputs" : [],
59+ "source" : [
60+ " a, b = map(int, input().split())"
61+ ]
62+ },
63+ {
64+ "source" : [
65+ " 이것은 iterable (모든 반복 가능한 객체를 iterable 하다고 합니다! 리스트, 튜플, 문자열 등등...) 한 데이터엔 모두 가능한 문법입니다.\n " ,
66+ " \n " ,
67+ " 그런데 이런 상황이 있을 겁니다.\n " ,
68+ " \n " ,
69+ " > 입력 받은 list에서 첫번째, 마지막 값만 얻고 싶어!\n " ,
70+ " \n " ,
71+ " 또는\n " ,
72+ " \n " ,
73+ " > 입력 받은 list에서 첫번째, 마지막 값을 제외하고 싶어!\n " ,
74+ " \n " ,
75+ " 이런 경우는 어떻게 해야 할까요?\n "
76+ ],
77+ "cell_type" : " markdown" ,
78+ "metadata" : {}
79+ },
80+ {
81+ "source" : [
82+ " _list = [1, 2, 3, 4, 5]\n " ,
83+ " first_index, *rest, last_index = _list\n " ,
84+ " print(rest)\n "
85+ ],
86+ "cell_type" : " code" ,
87+ "metadata" : {},
88+ "execution_count" : 1 ,
89+ "outputs" : [
90+ {
91+ "output_type" : " stream" ,
92+ "name" : " stdout" ,
93+ "text" : [
94+ " [2, 3, 4]\n "
95+ ]
96+ }
97+ ]
98+ },
99+ {
100+ "source" : [
101+ " 간단하네요?\n " ,
102+ " 파이썬은 *(asterisk)를 다음과 같은 상황에 사용합니다.\n " ,
103+ " \n " ,
104+ " - 곱셈, 거듭제곱\n " ,
105+ " - List형 컨테이너를 반복해서 확장\n " ,
106+ " - 가변 인자\n " ,
107+ " - Unpacking\n " ,
108+ " \n " ,
109+ " 위에서 rest에 사용한 것은 가변인자 입니다. 즉, 인자의 갯수가 몇개가 될지 확실하지 않을때 사용하는 거죠.\n " ,
110+ " first_index와 last_index가 앞과 끝을 가져가면, rest가 나머지를 가져가는 겁니다.\n " ,
111+ " \n " ,
112+ " 그렇다면 Unpacking은 뭘까요?\n " ,
113+ " 일단 아래 예시를 보겠습니다."
114+ ],
115+ "cell_type" : " markdown" ,
116+ "metadata" : {}
117+ },
118+ {
119+ "cell_type" : " code" ,
120+ "execution_count" : 7 ,
121+ "metadata" : {},
122+ "outputs" : [],
123+ "source" : [
124+ " _list = [1, 2, 3, 4, 5]\n " ,
125+ " for num in _list:\n " ,
126+ " print(num, end = ' ')"
127+ ]
128+ },
129+ {
130+ "source" : [
131+ " _list내 원소들을 출력하는 평범한 코드입니다.\n " ,
132+ " 그렇다면 이건 어떨까요?"
133+ ],
134+ "cell_type" : " markdown" ,
135+ "metadata" : {}
136+ },
137+ {
138+ "cell_type" : " code" ,
139+ "execution_count" : null ,
140+ "metadata" : {},
141+ "outputs" : [],
142+ "source" : [
143+ " _list = [1, 2, 3, 4, 5]\n " ,
144+ " print(*_list)"
145+ ]
146+ },
147+ {
148+ "source" : [
149+ " 놀랍게도 동일한 결과를 얻을 수 있습니다. 이것을 **List Unpacking** 이라고 부릅니다.\n " ,
150+ " \n " ,
151+ " 사실 list뿐만이 아니라, 컨테이너형 구조에선 모두 적용할 수 있습니다. 튜플에서도 되고, set에서도 가능해요.\n " ,
152+ " \n " ,
153+ " Unpacking을 이야기 했으니 살짝 다른 이야기를 해보겠습니다. 이건 어떤가요?"
154+ ],
155+ "cell_type" : " markdown" ,
156+ "metadata" : {}
157+ },
158+ {
159+ "cell_type" : " code" ,
160+ "execution_count" : 3 ,
161+ "metadata" : {},
162+ "outputs" : [
163+ {
164+ "output_type" : " stream" ,
165+ "name" : " stdout" ,
166+ "text" : [
167+ " (1, 2, 3)\n "
168+ ]
169+ }
170+ ],
171+ "source" : [
172+ " a, b, c = [1, 2, 3]\n " ,
173+ " d = a, b, c\n " ,
174+ " print(d)"
175+ ]
176+ },
177+ {
178+ "source" : [
179+ " Reference\n " ,
180+ " ---------\n " ,
181+ " - 파이썬 언어 레퍼런스 [이동][https://docs.python.org/ko/3/reference/index.html]\n " ,
182+ " - 전문가를 위한 파이썬 (원제 Fluent Python) - 루시아누 하말류 [구매][https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=88728476]\n " ,
183+ " - Python Cookbook - 데이비드 비즐리, 브라이언 K. 존스 [구매][https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=35468006]"
184+ ],
185+ "cell_type" : " markdown" ,
186+ "metadata" : {}
187+ }
188+ ]
189+ }
0 commit comments