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