πŸ“¦ huangsam / ultimate-python

πŸ“„ README.ko.md Β· 181 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181# Ultimate Python ν•™μŠ΅ κ°€μ΄λ“œ

[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/huangsam/ultimate-python/ci.yml)](https://github.com/huangsam/ultimate-python/actions)
[![Code Coverage](https://img.shields.io/codecov/c/github/huangsam/ultimate-python)](https://codecov.io/gh/huangsam/ultimate-python)
[![Quality Gate Status](https://img.shields.io/sonar/quality_gate/huangsam_ultimate-python?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/dashboard?id=huangsam_ultimate-python)
[![License](https://img.shields.io/github/license/huangsam/ultimate-python)](https://github.com/huangsam/ultimate-python/blob/main/LICENSE)
[![r/Python](https://img.shields.io/badge/reddit-original_post-red)](https://www.reddit.com/r/Python/comments/inllmf/ultimate_python_study_guide/)

μ΄ˆλ³΄μžμ™€ μ „λ¬Έκ°€ λͺ¨λ‘λ₯Ό μœ„ν•œ 졜고의 Python ν•™μŠ΅ κ°€μ΄λ“œμž…λ‹ˆλ‹€. 🐍 🐍 🐍

```python
print("Ultimate Python ν•™μŠ΅ κ°€μ΄λ“œ")
```

[English](README.md) |
[ν•œκ΅­μ–΄](README.ko.md) |
[繁体中文](README.zh_tw.md) |
[EspaΓ±ol](README.es.md) |
[Deutsch](README.de.md) |
[FranΓ§ais](README.fr.md) |
[ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯€](README.hi.md) |
[PortuguΓͺs - Brasil](README.pt_br.md)

<img src="images/ultimatepython.webp" alt="Ultimate Python" width="250px" />

## 동기

이 GitHub μ €μž₯μ†ŒλŠ” λŒ€ν•™ μ‘Έμ—… ν›„, λŒ€κ·œλͺ¨ νšŒμ‚¬μ—μ„œ κ·Όλ¬΄ν•˜λ©΄μ„œ
그리고 [Celery](https://github.com/celery/celery)와 [Full Stack Python](https://github.com/mattmakai/fullstackpython.com) 같은 μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈμ— κΈ°μ—¬ν•˜λ©΄μ„œ
μ§€λ‚œ 5λ…„ 이상 λ™μ•ˆ 배운 [core Python](https://www.python.org/)에 λŒ€ν•œ 지식을 κ³΅μœ ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
μ €λŠ” 더 λ§Žμ€ μ‚¬λžŒλ“€μ΄ Python을 배우고 μžμ‹ μ˜ 열정을 μΆ”κ΅¬ν•˜κΈΈ κΈ°λŒ€ν•©λ‹ˆλ‹€. πŸŽ“

## λͺ©ν‘œ

이 κ°€μ΄λ“œλ₯Ό λ§Œλ“œλŠ” μ£Όμš” λͺ©ν‘œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

πŸ† μ‹€μŠ΅ ν•™μŠ΅μ„ μ„ ν˜Έν•˜λŠ” Python 초보자λ₯Ό μœ„ν•œ **ν•™μŠ΅ 자료λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.**
이 μ €μž₯μ†Œμ—λŠ” [PyCharm](https://www.jetbrains.com/pycharm/)κ³Ό 같은 IDE 및 [Replit](https://replit.com/languages/python3)와 같은 λΈŒλΌμš°μ €μ—μ„œ μ‹€ν–‰ν•  수 μžˆλŠ” λ…λ¦½ν˜• λͺ¨λ“ˆ λͺ¨μŒμ΄ μžˆμŠ΅λ‹ˆλ‹€. κΈ°λ³Έ ν„°λ―Έλ„μ—μ„œλ„ 예제λ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
λŒ€λΆ€λΆ„μ˜ μ½”λ“œ 라인에 ν”„λ‘œκ·Έλž¨μ΄ λ‹¨κ³„λ³„λ‘œ μ–΄λ–€ μž‘μ—…μ„ ν•˜λŠ”μ§€ μ•ˆλ‚΄ν•˜λŠ” μ‹ μ€‘ν•˜κ²Œ μž‘μ„±λœ 주석이 μžˆμŠ΅λ‹ˆλ‹€.
μ‚¬μš©μžλŠ” `main` 루틴을 μ‚­μ œν•˜μ§€ μ•Šκ³ , 각 λ³€κ²½ 후에 [μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰](runner.py)λ˜λŠ” ν•œ μ†ŒμŠ€ μ½”λ“œλ₯Ό μ–Όλ§ˆλ“ μ§€ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ† core Python κ°œλ…μ„ λ‹€μ‹œ λ³΅μŠ΅ν•˜κ³  싢은 μ‚¬λžŒλ“€μ„ μœ„ν•œ **순수 κ°€μ΄λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.**
μ—¬κΈ°μ„œλŠ” 였직 [λ‚΄μž₯ 라이브러리](https://docs.python.org/3/library/)λ§Œμ„ μ‚¬μš©ν•˜μ—¬ μ΄λŸ¬ν•œ κ°œλ…μ„ 도메인 νŠΉν™”λœ κ°œλ…μ˜ μ˜€λ²„ν—€λ“œ 없이 μ „λ‹¬ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 유λͺ…ν•œ μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν”„λ ˆμž„μ›Œν¬(`sqlalchemy`, `requests`, `pandas` λ“±)λŠ” μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜, λ‹Ήμ‹ μ˜ λͺ©ν‘œκ°€ μ§„μ •ν•œ μ§„μ •ν•œ [Pythonista](https://www.urbandictionary.com/define.php?term=pythonista)이 λ˜λŠ” 것 이라면 μ΄λŸ¬ν•œ ν”„λ ˆμž„μ›Œν¬μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό μ½λŠ” 것은 맀우 고무적이고 ꢌμž₯이 λ©λ‹ˆλ‹€.

## μ‹œμž‘ν•˜κΈ°

[![Run on Replit](https://replit.com/badge/github/huangsam/ultimate-python)](https://replit.com/github/huangsam/ultimate-python)

둜컬 컴퓨터에 Git 및 Python을 μ„€μΉ˜ν•˜μ§€ μ•Šκ³ λ„ λΈŒλΌμš°μ €μ—μ„œ μž‘μ—… ν™˜κ²½μ„ μ‹œμž‘ν•˜λ €λ©΄ μœ„μ˜ λ°°μ§€λ₯Ό ν΄λ¦­ν•˜μ„Έμš”. μ΄λŸ¬ν•œ
μš”κ΅¬ 사항이 이미 좩쑱된 경우, μ €μž₯μ†Œλ₯Ό λ°”λ‘œ clone해도 λ©λ‹ˆλ‹€.

μ €μž₯μ†Œμ— μ ‘κ·Όν•  수 있게 되면 단독 λͺ¨λ“ˆμ—μ„œ 배울 μ€€λΉ„κ°€ 된 κ²ƒμž…λ‹ˆλ‹€. 각 λͺ¨λ“ˆμ„ μ΅œλŒ€ν•œ ν™œμš©ν•˜λ €λ©΄ λͺ¨λ“ˆ μ½”λ“œλ₯Ό
읽고 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€. λͺ¨λ“ˆμ„ μ‹€ν–‰ν•˜λŠ” 두 κ°€μ§€ 방법이 μžˆμŠ΅λ‹ˆλ‹€:

1. 단일 λͺ¨λ“ˆ μ‹€ν–‰ : `python ultimatepython/syntax/variable.py`
2. 전체 λͺ¨λ“ˆ μ‹€ν–‰ : `python runner.py`

## λͺ©μ°¨

πŸ“š = μ™ΈλΆ€ λ¦¬μ†ŒμŠ€,
🍰 = μ΄ˆκΈ‰ 주제,
🀯 = κ³ κΈ‰ 주제

1. **Python 정보**
    - κ°œμš” : [Pythonμ΄λž€ 무엇인가](https://github.com/trekhleb/learn-python/blob/master/src/getting_started/what_is_python.md) ( πŸ“š, 🍰 )
    - λ””μžμΈ μ² ν•™ : [The Zen of Python](https://www.python.org/dev/peps/pep-0020/) ( πŸ“š )
    - μŠ€νƒ€μΌ κ°€μ΄λ“œ : [Python μ½”λ“œ μŠ€νƒ€μΌ κ°€μ΄λ“œ](https://www.python.org/dev/peps/pep-0008/) ( πŸ“š, 🀯 )
    - 데이터 λͺ¨λΈ : [데이터 λͺ¨λΈ](https://docs.python.org/3/reference/datamodel.html) ( πŸ“š, 🀯 )
    - ν‘œμ€€ 라이브러리 : [Python ν‘œμ€€ 라이브러리](https://docs.python.org/3/library/) ( πŸ“š, 🀯 )
    - λ‚΄μž₯ ν•¨μˆ˜ : [λ‚΄μž₯ ν•¨μˆ˜](https://docs.python.org/3/library/functions.html) ( πŸ“š )
2. **톡사둠**
    - λ³€μˆ˜ : [λ‚΄μž₯ λ¦¬ν„°λŸ΄](ultimatepython/syntax/variable.py) ( 🍰 )
    - ν‘œν˜„μ‹ : [숫자 μ—°μ‚°](ultimatepython/syntax/expression.py) ( 🍰 )
    - λΉ„νŠΈ μ—°μ‚° : [λΉ„νŠΈ μ—°μ‚°μž](ultimatepython/syntax/bitwise.py) ( 🍰 ), [1의 보수/2의 보수](https://www.geeksforgeeks.org/difference-between-1s-complement-representation-and-2s-complement-representation-technique/) ( πŸ“š )
    - 쑰건문 : [if | if-else | if-elif-else](ultimatepython/syntax/conditional.py) ( 🍰 )
    - 반볡문 : [for-loop | while-loop](ultimatepython/syntax/loop.py) ( 🍰 )
    - ν•¨μˆ˜ : [def | lambda](ultimatepython/syntax/function.py) ( 🍰 )
    - 바닀코끼리 μ—°μ‚°μž : [ν• λ‹Ή ν‘œν˜„μ‹ :=](ultimatepython/syntax/walrus_operator.py) ( 🀯 )
    - 인수 κ°•μ œ : [μœ„μΉ˜ μ „μš© / | ν‚€μ›Œλ“œ μ „μš© *](ultimatepython/syntax/arg_enforcement.py) ( 🀯 )
3. **데이터 ꡬ쑰**
    - 리슀트 : [리슀트 μ—°μ‚°](ultimatepython/data_structures/list.py) ( 🍰 )
    - νŠœν”Œ : [νŠœν”Œ μ—°μ‚°](ultimatepython/data_structures/tuple.py)
    - μ„ΈνŠΈ : [μ„ΈνŠΈ μ—°μ‚°](ultimatepython/data_structures/set.py)
    - λ”•μ…”λ„ˆλ¦¬ : [λ”•μ…”λ„ˆλ¦¬ μ—°μ‚°](ultimatepython/data_structures/dict.py) ( 🍰 )
    - λ”•μ…”λ„ˆλ¦¬ 합병 : [λ”•μ…”λ„ˆλ¦¬ 병합 | 및 |=](ultimatepython/data_structures/dict_union.py) ( 🀯 )
    - μ»΄ν”„λ¦¬ν—¨μ…˜ : [리슀트 | νŠœν”Œ | μ„ΈνŠΈ | λ”•μ…”λ„ˆλ¦¬](ultimatepython/data_structures/comprehension.py)
    - λ¬Έμžμ—΄ : [λ¬Έμžμ—΄ μ—°μ‚°](ultimatepython/data_structures/string.py) ( 🍰 )
    - 덱: [deque](ultimatepython/data_structures/deque.py) ( 🀯 )
    - Namedtuple: [namedtuple](ultimatepython/data_structures/namedtuple.py) ( 🀯 )
    - Defaultdict: [defaultdict](ultimatepython/data_structures/defaultdict.py) ( 🀯 )
    - μ΄ν„°λ ˆμ΄ν„° 도ꡬ: [μ΄ν„°λ ˆμ΄ν„° 도ꡬ](ultimatepython/data_structures/itertools.py) ( 🀯 )
    - μ‹œκ°„ λ³΅μž‘λ„ : [cPython μ—°μ‚°](https://wiki.python.org/moin/TimeComplexity) ( πŸ“š, 🀯 )
4. **클래슀**
    - κΈ°λ³Έ 클래슀 : [κΈ°λ³Έ μ •μ˜](ultimatepython/classes/basic_class.py) ( 🍰 )
    - κ³„μŠΉ: [κ³„μŠΉ](ultimatepython/classes/inheritance.py) ( 🍰 )
    - 좔상 클래슀 : [좔상 μ •μ˜](ultimatepython/classes/abstract_class.py)
    - μ˜ˆμ™Έ 클래슀 : [μ˜ˆμ™Έ μ •μ˜](ultimatepython/classes/exception_class.py)
    - μ΄ν„°λ ˆμ΄ν„° 클래슀 : [μ΄ν„°λ ˆμ΄ν„° μ •μ˜ | yield](ultimatepython/classes/iterator_class.py) ( 🀯 )
    - μΊ‘μŠν™”: [μΊ‘μŠν™” μ •μ˜](ultimatepython/classes/encapsulation.py)
5. **κ³ κΈ‰**
    - λ°μ½”λ ˆμ΄ν„° : [λ°μ½”λ ˆμ΄ν„° μ •μ˜ | wraps](ultimatepython/advanced/decorator.py) ( 🀯 )
    - 파일 처리: [파일 처리](ultimatepython/advanced/file_handling.py) ( 🀯 )
    - μ»¨ν…μŠ€νŠΈ λ§€λ‹ˆμ € : [μ»¨ν…μŠ€νŠΈ λ§€λ‹ˆμ €](ultimatepython/advanced/context_manager.py) ( 🀯 )
    - λ©”μ„œλ“œ κ²°μ • μˆœμ„œ : [mro](ultimatepython/advanced/mro.py) ( 🀯 )
    - 믹슀인 : [믹슀인 μ •μ˜](ultimatepython/advanced/mixin.py) ( 🀯 )
    - λ©”νƒ€ν΄λž˜μŠ€ : [λ©”νƒ€ν΄λž˜μŠ€ μ •μ˜](ultimatepython/advanced/meta_class.py) ( 🀯 )
    - μŠ€λ ˆλ“œ : [ThreadPoolExecutor](ultimatepython/advanced/thread.py) ( 🀯 )
    - Asyncio : [async | await](ultimatepython/advanced/async.py) ( 🀯 )
    - μ•½ν•œ μ°Έμ‘° : [weakref](ultimatepython/advanced/weak_ref.py) ( 🀯 )
    - 벀치마크 : [cProfile | pstats](ultimatepython/advanced/benchmark.py) ( 🀯 )
    - λͺ¨ν‚Ή : [MagicMock | PropertyMock | patch](ultimatepython/advanced/mocking.py) ( 🀯 )
    - μ •κ·œμ‹ : [search | findall | match | fullmatch](ultimatepython/advanced/regex.py) ( 🀯 )
    - 데이터 포맷 : [json | xml | csv](ultimatepython/advanced/data_format.py) ( 🀯 )
    - λ‚ μ§œμ™€ μ‹œκ°„ : [datetime | timezone](ultimatepython/advanced/date_time.py) ( 🀯 )
    - νŒ¨ν„΄ λ§€μΉ­: [match | case](ultimatepython/advanced/pattern_matching.py) ( 🀯 )

## μΆ”κ°€ 자료

πŸ‘” = 인터뷰 자료,
πŸ§ͺ = μ½”λ“œ μƒ˜ν”Œ,
🧠 = ν”„λ‘œμ νŠΈ 아이디어

### GitHub μ €μž₯μ†Œ

잘 μ•Œλ €μ§„ λ‹€λ₯Έ 자료λ₯Ό μ½μœΌλ©΄μ„œ 계속 λ°°μš°μ„Έμš”.

- [TheAlgorithms/Python](https://github.com/TheAlgorithms/Python) ( πŸ‘” , πŸ§ͺ )
- [faif/python-patterns](https://github.com/faif/python-patterns) ( πŸ‘” , πŸ§ͺ )
- [geekcomputers/Python](https://github.com/geekcomputers/Python) ( πŸ§ͺ )
- [trekhleb/homemade-machine-learning](https://github.com/trekhleb/homemade-machine-learning) ( πŸ§ͺ )
- [karan/Projects](https://github.com/karan/Projects) ( 🧠 )
- [MunGell/awesome-for-beginners](https://github.com/MunGell/awesome-for-beginners) ( 🧠 )
- [vinta/awesome-python](https://github.com/vinta/awesome-python)
- [academic/awesome-datascience](https://github.com/academic/awesome-datascience)
- [josephmisiti/awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning)
- [ZuzooVn/machine-learning-for-software-engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
- [30-seconds/30-seconds-of-python](https://github.com/30-seconds/30-seconds-of-python) ( πŸ§ͺ )
- [ml-tooling/best-of-python](https://github.com/ml-tooling/best-of-python)
- [practical-tutorials/project-based-learning](https://github.com/practical-tutorials/project-based-learning#python)
- [freeCodeCamp/freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp) ( πŸ‘” )
- [microsoft/ML-For-Beginners](https://github.com/microsoft/ML-For-Beginners) ( πŸ§ͺ )
- [microsoft/Data-Science-For-Beginners](https://github.com/microsoft/Data-Science-For-Beginners) ( πŸ§ͺ )
- [Avik-Jain/100-Days-Of-ML-Code](https://github.com/Avik-Jain/100-Days-Of-ML-Code) ( πŸ§ͺ )

### μ €μžμ˜ ν”„λ‘œμ νŠΈ

μ΄λŸ¬ν•œ κ°œλ…μ„ 읡힌 ν›„ 무엇을 λ§Œλ“€ 수 μžˆλŠ”μ§€ λ³΄μ—¬μ£ΌλŠ” Python으둜 μ œμž‘ν•œ ν”„λ‘œμ νŠΈλ“€μž…λ‹ˆλ‹€:

- [huangsam/chowist](https://github.com/huangsam/chowist) ( πŸ§ͺ )
- [huangsam/githooks](https://github.com/huangsam/githooks) ( πŸ§ͺ )
- [huangsam/ragchain](https://github.com/huangsam/ragchain) ( πŸ§ͺ )
- [huangsam/mailprune](https://github.com/huangsam/mailprune) ( πŸ§ͺ )

### λŒ€ν™”ν˜• μ—°μŠ΅

μ½”λ”© μ‹€λ ₯이 λ…ΉμŠ¬μ§€ μ•ŠκΈ° μœ„ν•΄ 계속 μ—°μŠ΅ν•˜μ„Έμš”.

- [codechef.com](https://www.codechef.com/) ( πŸ‘” )
- [codeforces.com](https://codeforces.com/)
- [codementor.io](https://www.codementor.io) ( 🧠 )
- [coderbyte.com](https://www.coderbyte.com/) ( πŸ‘” )
- [codewars.com](https://www.codewars.com/)
- [exercism.io](https://exercism.io/)
- [geeksforgeeks.org](https://www.geeksforgeeks.org/) ( πŸ‘” )
- [hackerearth.com](https://www.hackerearth.com/)
- [hackerrank.com](https://www.hackerrank.com/) ( πŸ‘” )
- [kaggle.com](https://www.kaggle.com/) ( 🧠 )
- [labex.io](https://labex.io/exercises/python)( πŸ§ͺ )
- [leetcode.com](https://leetcode.com/) ( πŸ‘” )
- [projecteuler.net](https://projecteuler.net/)
- [replit.com](https://replit.com/)
- [w3schools.com](https://www.w3schools.com/python/) ( πŸ§ͺ )
- [teclado.com](https://teclado.com/30-days-of-python/#prerequisites) ( πŸ‘” )
- [fullstakpython.org](https://fullstackpython.org/) ( πŸ§ͺ )

## μ‹œλŒ€μ˜ 별 κ΄€μΈ‘μž

[![Stargazers over time](https://starchart.cc/huangsam/ultimate-python.svg?variant=adaptive)](https://starchart.cc/huangsam/ultimate-python)