๐ 30 Days Of Python
# Day | Topics |
---|---|
01 | Introduction |
02 | Variables, Built-in Functions |
03 | Operators |
04 | Strings |
05 | Lists |
06 | Tuples |
07 | Sets |
08 | Dictionaries |
09 | Conditionals |
10 | Loops |
11 | Functions |
12 | Modules |
13 | List Comprehension |
14 | Higher Order Functions |
15 | Python Type Errors |
16 | Python Date time |
17 | Exception Handling |
18 | Regular Expressions |
19 | File Handling |
20 | Python Package Manager |
21 | Classes and Objects |
22 | Web Scraping |
23 | Virtual Environment |
24 | Statistics |
25 | Pandas |
26 | Python web |
27 | Python with MongoDB |
28 | API |
29 | Building API |
30 | Conclusions |
๐งก๐งก๐งก HAPPY CODING ๐งก๐งก๐งก
- ๐ 30 Days Of Python
- ๐ Day 1
- ํ์ํฉ๋๋ค
- ์๊ฐ
- ์ Python์ด๋๋?
- ํ๊ฒฝ ์ค์
- Python ๊ธฐ๋ณธ
- ๐ป Exercises - Day 1
๐ Day 1
ํ์ํฉ๋๋ค
_30 days of Python_์ ์ฐธ์ฌํ๊ธฐ๋ก ๊ฒฐ์ ํ์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค. ์ด ์ฑ๋ฆฐ์ง์์๋ Python ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ธฐ ์ํด ํ์ํ ๋ชจ๋ ๊ฒ๊ณผ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ฒด ๊ฐ๋ ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ์ฑ๋ฆฐ์ง๊ฐ ๋๋๋ฉด _30DaysOfPython_ํ๋ก๊ทธ๋๋ฐ ์ฑ๋ฆฐ์ง ์ธ์ฆ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ฑ๋ฆฐ์ง์ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๊ณ ์ถ๋ค๋ฉด 30DaysOfPython challenge ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์๊ฐ
Python์ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ์คํ ์์ค, ์ธํฐํ๋ฆฌํฐ, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. Python์ ๋ค๋๋๋ ํ๋ก๊ทธ๋๋จธ Guido van Rossum์ด ๋ง๋ค์์ต๋๋ค. Python ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ด๋ฆ์ ์๊ตญ ์ค์ผ์น ์ฝ๋ฏธ๋ ์๋ฆฌ์ฆ Month Python's Flying Circus ์์ ํ์๋์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ 1991๋ 2์ 20์ผ์ ์ถ์๋์์ต๋๋ค. ์ด 30์ผ๊ฐ์ Python ์ฑ๋ฆฐ์ง๋ ์ต์ ๋ฒ์ ์ Python์ธ Python 3๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐฐ์ธ ์ ์๋๋ก ๋์์ค ๊ฒ์ ๋๋ค. ์ฃผ์ ๋ 30์ผ๋ก ๋๋๋ฉฐ, ๋งค์ผ ์ดํดํ๊ธฐ ์ฌ์ด ์ค๋ช , ์ค์ ์ฌ๋ก, ๋ง์ ์ค์ต ๋ฐ ํ๋ก์ ํธ๊ฐ ํฌํจ๋ ์ฌ๋ฌ ์ฃผ์ ๊ฐ ํฌํจ๋ฉ๋๋ค.
์ด ์ฑ๋ฆฐ์ง๋ Python ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๊ณ ์ ํ๋ ์ด๋ณด์์ ์ ๋ฌธ๊ฐ๋ฅผ ์ํด ๊ณ ์๋์์ต๋๋ค. ์ฑ๋ฆฐ์ง๋ฅผ ์๋ฃํ๋ ๋ฐ 30~100์ผ์ด ์์๋ ์ ์์ผ๋ฉฐ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๋ ์ฌ๋๋ค์ด ์ฑ๋ฆฐ์ง๋ฅผ ์๋ฃํ ํ๋ฅ ์ด ๋์ต๋๋ค. ์๊ฐ์ ํ์ต์์ด๊ฑฐ๋ ๋์์์ ์ ํธํ๋ ๊ฒฝ์ฐ ์ด ์์ ์ด๋ณด๋ฅผ ์ํ Python ๋์์์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
์ Python์ด๋๋?
์ธ๊ฐ์ ์ธ์ด์ ๋งค์ฐ ๊ฐ๊น๊ณ ๋ฐฐ์ฐ๊ธฐ ์ฝ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. Python์ ๋ค์ํ ์ฐ์ ๋ฐ ํ์ฌ(Google ํฌํจ)์์ ์ฌ์ฉ๋ฉ๋๋ค. ์น ์์ฉ ํ๋ก๊ทธ๋จ, ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ, ์์คํ ๊ด๋ฆฌ ๋ฐ ๊ธฐ๊ณ ํ์ต ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค. Python์ ๋ฐ์ดํฐ ๊ณผํ ๋ฐ ๊ธฐ๊ณ ํ์ต ์ปค๋ฎค๋ํฐ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธ์ด์ ๋๋ค. ์ด๊ฒ์ด Python ํ์ต์ ์์ํ๋๋ก ์ค๋ํ๊ธฐ์ ์ถฉ๋ถํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. Python์ ์ธ์์ ์ง๋ฐฐํ๊ณ ์์ผ๋ ์ง๋ฐฐ ๋นํ๊ธฐ ์ ์ Python์ ์ง๋ฐฐํ์ญ์์ค.
ํ๊ฒฝ ์ค์
Python ์ค์น
Python ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ค๋ฉด Python์ ์ค์นํด์ผ ํฉ๋๋ค. Python์ ๋ค์ด๋ก๋ํฉ์๋ค. Windows ์ฌ์ฉ์์ธ ๊ฒฝ์ฐ. ๋นจ๊ฐ์ ๋๊ทธ๋ผ๋ฏธ ์น ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
macOS ์ฌ์ฉ์์ธ ๊ฒฝ์ฐ. ๋นจ๊ฐ์ ๋๊ทธ๋ผ๋ฏธ ์น ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
Python์ด ์ค์น๋์ด ์๋์ง ํ์ธํ๋ ค๋ฉด ์ฅ์น ํฐ๋ฏธ๋์ ๋ค์ ๋ช ๋ น์ ์์ฑํ์ญ์์ค.
ํฐ๋ฏธ๋์์ ๋ณด์๋ค์ํผ ์ ๋ ํ์ฌ Python 3.7.5 ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทํ์ Python ๋ฒ์ ์ ๋ด ๋ฒ์ ๊ณผ ๋ค๋ฅผ ์ ์์ง๋ง 3.6 ์ด์์ด์ด์ผ ํฉ๋๋ค. Python ๋ฒ์ ์ ๋ณผ ์ ์๋ค๋ฉด ์ํ ๊ฒ์ ๋๋ค. ์ด์ ์ปดํจํฐ์ Python์ด ์ค์น๋์์ต๋๋ค. ๋ค์ ์น์ ์ผ๋ก ๊ณ์ ์งํํ์ญ์์ค.
Python ์ ธ
Python์ ํด์๋ ์คํฌ๋ฆฝํ ์ธ์ด์ด๋ฏ๋ก ์ปดํ์ผํ ํ์๊ฐ ์์ต๋๋ค. ์ฝ๋๋ฅผ ํ ์ค์ฉ ์คํํ๋ค๋ ์๋ฏธ์ ๋๋ค. Python์ _Python Shell(Python Interactive Shell)_๊ณผ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. ๋จ์ผ Python ๋ช ๋ น์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Python Shell์ ์ฌ์ฉ์์ Python ์ฝ๋๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ฝ๋๋ฅผ ํด์ํ์ฌ ๋ค์ ์ค์ ๊ฒฐ๊ณผ๋ฅผ ํ์ํฉ๋๋ค. ํฐ๋ฏธ๋์ด๋ ๋ช ๋ น ํ๋กฌํํธ(cmd)๋ฅผ ์ด๊ณ ์ฐ๊ธฐ:
Python ๋ํํ ์ ธ์ด ์ด๋ฆฌ๊ณ Python ์ฝ๋(Python ์คํฌ๋ฆฝํธ)๋ฅผ ์์ฑํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค. ๊ธฐํธ >>> ์์ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ Enter๋ฅผ ๋๋ฆ ๋๋ค. Python ์คํฌ๋ฆฝํ ์ ธ์์ ์ฒซ ๋ฒ์งธ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
ํ๋ฅญํฉ๋๋ค. Python ๋ํํ ์ ธ์์ ์ฒซ ๋ฒ์งธ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ต๋๋ค. Python ๋ํํ ์ ธ์ ์ด๋ป๊ฒ ๋ซ์ต๋๊น? ์ ธ์ ๋ซ์ผ๋ ค๋ฉด ๊ธฐํธ ์์ >> exit() ๋ช ๋ น์ ์์ฑํ๊ณ Enter ํค๋ฅผ ๋๋ฆ ๋๋ค.
์ด์ Python ๋ํํ ์ ธ์ ์ฌ๋ ๋ฐฉ๋ฒ๊ณผ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ ์์์ต๋๋ค.
Python์ Python์ด ์ดํดํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค. ๊ณ ์์ ์ธ ์ค์๋ฅผ ํ๊ณ Python์ด ๋ฌด์์ ๋ฐํํ๋์ง ๋ด ์๋ค.
๋ฐํ๋ ์ค๋ฅ์์ ๋ณผ ์ ์๋ฏ์ด Python์ ์ฐ๋ฆฌ๊ฐ ์ ์ง๋ฅธ ์ค์์ _Syntax Error: invalid syntax_๋ฅผ ์๊ณ ์์ ์ ๋๋ก ์๋ฆฌํฉ๋๋ค. Python์์ x๋ฅผ ๊ณฑ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ (x)๊ฐ Python์์ ์ ํจํ ๊ตฌ๋ฌธ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ตฌ๋ฌธ ์ค๋ฅ์ ๋๋ค. (x) ๋์ ๊ณฑ์ ์ ๋ณํ(*)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐํ๋ ์ค๋ฅ๋ ์์ ํด์ผ ํ ์ฌํญ์ ๋ช ํํ๊ฒ ๋ณด์ฌ์ค๋๋ค.
ํ๋ก๊ทธ๋จ์์ ์ค๋ฅ๋ฅผ ์๋ณํ๊ณ ์ ๊ฑฐํ๋ ํ๋ก์ธ์ค๋ฅผ ๋๋ฒ๊น ์ด๋ผ๊ณ ํฉ๋๋ค. x ๋์ *๋ฅผ ๋ฃ์ด ๋๋ฒ๊น ํด ๋ด ์๋ค.
๋ฒ๊ทธ๊ฐ ์์ ๋์๊ณ ์ฝ๋๊ฐ ์คํ๋์์ผ๋ฉฐ ์์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค. ํ๋ก๊ทธ๋๋จธ๋ก์ ๋งค์ผ ์ด๋ฌํ ์ข ๋ฅ์ ์ค๋ฅ๋ฅผ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋๋ฒ๊น ๋ฐฉ๋ฒ์ ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ฒ๊น ์ ์ํ๋ ค๋ฉด ์ด๋ค ์ข ๋ฅ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ์ดํดํด์ผ ํฉ๋๋ค. ๋ฐ์ํ ์ ์๋ Python ์ค๋ฅ ์ค ์ผ๋ถ๋ SyntaxError, IndexError, NameError, ModuleNotFoundError, KeyError, ImportError, AttributeError, TypeError, ValueError, ZeroDivisionError ๋ฑ์ ๋๋ค. ์ดํ ์น์ ์์ ๋ค๋ฅธ Python ์ค๋ฅ ์ ํ์ ๋ํด ์์ธํ ์์๋ณผ ๊ฒ์ ๋๋ค.
Python ๋ํํ ์ ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ ์ฐ์ตํด ๋ณด๊ฒ ์ต๋๋ค. ํฐ๋ฏธ๋์ด๋ ๋ช ๋ น ํ๋กฌํํธ๋ก ์ด๋ํ์ฌ python์ด๋ผ๋ ๋จ์ด๋ฅผ ์๋๋ค.
Python ๋ํํ ์ ธ์ด ์ด๋ฆฝ๋๋ค. ๋ช ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ์ํ ์ฐ์ฐ(๋ํ๊ธฐ, ๋นผ๊ธฐ, ๊ณฑํ๊ธฐ, ๋๋๊ธฐ, ๋๋จธ์ง, ์ง์)์ ์ํํด ๋ณด๊ฒ ์ต๋๋ค.
Python ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ๋จผ์ ๋ช ๊ฐ์ง ์ํ์ ์ํํด ๋ณด๊ฒ ์ต๋๋ค:
- 2 + 3 = 5
- 3 - 2 = 1
- 3 * 2 = 6
- 3 / 2 = 1.5
- 3 ^ 2 = 3 x 3 = 9
Python์๋ ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ ์์ ์ด ์์ต๋๋ค:
- 3 % 2 = 1 => ๋๋จธ์ง๋ฅผ ๊ตฌํจ
- 3 // 2 = 1 => ๋๋จธ์ง๋ฅผ ์ ๊ฑฐ
์์ ์ํ์์ Python ์ฝ๋๋ก ๋ฐ๊ฟ๋ด ์๋ค. Python ์ ธ์ด ์ด๋ ธ์ผ๋ฉฐ ์ ธ ๋งจ ์ฒ์์ ์ฃผ์์ ์์ฑํ๊ฒ ์ต๋๋ค.
_comment_๋ Python์ ์ํด ์คํ๋์ง ์๋ ์ฝ๋์ ์ผ๋ถ์ ๋๋ค. ๋ฐ๋ผ์ ์ฝ๋๋ฅผ ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ฝ๋์ ์ผ๋ถ ํ ์คํธ๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค. Python์ ์ฃผ์ ๋ถ๋ถ์ ์คํํ์ง ์์ต๋๋ค. Python์์ ์ฃผ์์ ํด์(#) ๊ธฐํธ๋ก ์์ํฉ๋๋ค. ์ด๊ฒ์ด Python์์ ์ฃผ์์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค
# ์ฃผ์์ ํด์๋ก ์์ํฉ๋๋ค.
# (#) ์ฌ๋ณผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ํ์ด์ฌ ์ฃผ์์
๋๋ค.
๋ค์ ์น์ ์ผ๋ก ์ด๋ํ๊ธฐ ์ ์ Python ๋ํํ ์ ธ์์ ๋ ๋ง์ ์ฐ์ต์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ ธ์์ _exit()_๋ฅผ ์์ฑํ์ฌ ์ด๋ฆฐ ์ ธ์ ๋ซ์๋ค๊ฐ ๋ค์ ์ด์ด Python ์ ธ์์ ํ ์คํธ๋ฅผ ์ฐ๋ ๋ฐฉ๋ฒ์ ์ฐ์ตํด ๋ด ์๋ค.
Visual Studio Code ์ค์น
Python ๋ํํ ์ ธ์ ์์ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์๋ํ๊ณ ํ ์คํธํ๋ ๋ฐ ์ ํฉํ์ง๋ง ํฐ ํ๋ก์ ํธ์๋ ์ ํฉํ์ง ์์ต๋๋ค. ์ค์ ์์ ํ๊ฒฝ์์ ๊ฐ๋ฐ์๋ ๋ค์ํ ์ฝ๋ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์ด 30์ผ๊ฐ์ Python ํ๋ก๊ทธ๋๋ฐ ์ฑ๋ฆฐ์ง์์๋ Visual Studio ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. Visual Studio Code๋ ๋งค์ฐ ์ธ๊ธฐ ์๋ ์คํ ์์ค ํ ์คํธ ํธ์ง๊ธฐ์ ๋๋ค. ๋๋ vscode์ ํฌ์ด๊ณ Visual Studio ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ์ถ์ฒํ๊ณ ์ถ์ง๋ง, ๋ค๋ฅธ ํธ์ง์๋ฅผ ์ ํธํ๋ค๋ฉด ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์์ ๋กญ๊ฒ ๋ฐ๋ฅด์ญ์์ค.
Visual Studio Code๋ฅผ ์ค์นํ์ จ๋ค๋ฉด ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ๋น๋์ค๋ฅผ ์ ํธํ๋ ๊ฒฝ์ฐ Python์ฉ Visual Studio Code๋น๋์ค ์์ต์๋ฅผ ๋ฐ๋ฅผ ์ ์์ต๋๋ค.
visual studio code๋ฅผ ์ฌ์ฉํ๊ธฐ
Visual Studio ์์ด์ฝ์ ๋ ๋ฒ ํด๋ฆญํ์ฌ Visual Studio ์ฝ๋๋ฅผ ์ฝ๋๋ค. ์ด๋ฉด ์ด๋ฐ ์ข ๋ฅ์ ์ธํฐํ์ด์ค๊ฐ ๋ํ๋ฉ๋๋ค. ๋ ์ด๋ธ์ด ์ง์ ๋ ์์ด์ฝ์ ๋ฐ๋ผํด๋ณด์ธ์.
๋ฐํ ํ๋ฉด์ 30DaysOfPython์ด๋ผ๋ ํด๋๋ฅผ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ Visual Studio ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์๋ค.
ํ์ผ์ ์ด๋ฉด 30DaysOfPython ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ ํ์ผ๊ณผ ํด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ฐ๋ก ๊ฐ๊ธฐ๊ฐ ํ์๋ฉ๋๋ค. ์๋์์ ๋ณผ ์ ์๋ฏ์ด ์ฒซ ๋ฒ์งธ ํ์ผ์ธ helloworld.py๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋น์ ๋ ๋๊ฐ์ด ํ ์ ์์ต๋๋ค.
ํ๋ฃจ๋์ ์ค๋ ์ฝ๋ฉ์ ํ ํ์ ์ฝ๋ ํธ์ง๊ธฐ๋ฅผ ๋ซ๊ณ ์ถ์ต๋๊น? ์ด๋ ๊ฒ ์ด๋ฆฐ ํ๋ก์ ํธ๋ฅผ ๋ซ์ผ๋ฉด ๋ฉ๋๋ค.
์ถํํฉ๋๋ค. ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ์ ์๋ฃํ์ต๋๋ค. ์ฝ๋ฉ์ ์์ํด ๋ด ์๋ค.
Python ๊ธฐ๋ณธ
Python ๊ตฌ๋ฌธ
Python ์คํฌ๋ฆฝํธ๋ Python ๋ํํ ์ ธ ๋๋ ์ฝ๋ ํธ์ง๊ธฐ์์ ์์ฑํ ์ ์์ต๋๋ค. Python ํ์ผ์ ํ์ฅ์๋ .py์ ๋๋ค.
Python ๋ค์ฌ ์ฐ๊ธฐ
๋ค์ฌ์ฐ๊ธฐ๋ ํ ์คํธ์ ๊ณต๋ฐฑ์ ๋๋ค. ๋ง์ ์ธ์ด์์ ๋ค์ฌ์ฐ๊ธฐ๋ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ด๋ ๋ฐ ์ฌ์ฉ๋์ง๋ง Python์ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ๋ธ๋ก์ ๋ง๋ญ๋๋ค. ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ์ค๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ฌ์ฐ๊ธฐ ๋์ ์ฝ๋ ๋ธ๋ก์ ๋ง๋ญ๋๋ค. Python ์ฝ๋๋ฅผ ์์ฑํ ๋ ํํ ๋ฐ์ํ๋ ๋ฒ๊ทธ ์ค ํ๋๋ ์๋ชป๋ ๋ค์ฌ์ฐ๊ธฐ์ ๋๋ค.
์ฃผ์
์ฃผ์์ ์ฝ๋๋ฅผ ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ณ ์ฝ๋์ ์ค๋ช ์ ๋จ๊ธฐ๊ธฐ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค. Python์ ์ฝ๋์ ์ฃผ์ ๋ถ๋ถ์ ์คํํ์ง ์์ต๋๋ค. Python์์ ํด์(#)๋ก ์์ํ๋ ๋ชจ๋ ํ ์คํธ๋ ์ฃผ์์ ๋๋ค.
์์:ํ ๋ฌธ์ฅ ์ฃผ์
์์: ์ฌ๋ฌ ๋ฌธ์ฅ ์ฃผ์
Triple quote can be used for multiline comment if it is not assigned to a variable
๋ฐ์ดํฐ ํ์
Python์๋ ์ฌ๋ฌ ์ ํ์ ๋ฐ์ดํฐ ์ ํ์ด ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฒ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ํ์ ๋ค๋ฅธ ์น์ ์์ ์์ธํ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค. ๋น๋ถ๊ฐ ๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์ดํด๋ณด๊ณ ์ต์ํด์ง๋๋ก ํฉ์๋ค. ์ง๊ธ์ ๋ช ํํ๊ฒ ์ดํดํ์ง ์์๋ ๋ฉ๋๋ค.
Number
- Integer: ์ ์(์์, ์ ๊ทธ๋ฆฌ๊ณ ์์) ์์: ... -3, -2, -1, 0, 1, 2, 3 ...
- Float: ์ญ์ง์ ์์ ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
- Complex ์์ 1 + j, 2 + 4j
String
์์๋ฐ์ดํ ๋๋ ํฐ๋ฐ์ดํ ์๋์ ์๋ ํ๋ ์ด์์ ๋ฌธ์ ๋ชจ์์ ๋๋ค. ๋ฌธ์์ด์ด ๋ ๋ฌธ์ฅ ์ด์์ธ ๊ฒฝ์ฐ ์ผ์ค ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์:
'Asabeneh'
'Finland'
'Python'
'I love teaching'
'I hope you are enjoying the first day of 30DaysOfPython Challenge'
Boolean
๋ถ์ธ ๋ฐ์ดํฐ ์ ํ์ True ๋๋ False ๊ฐ์ ๋๋ค. T์ F๋ ํญ์ ๋๋ฌธ์์ฌ์ผ ํฉ๋๋ค.
์์:
True # ๋ถ์ด ์ผ์ ธ์๋์? ๊ทธ๋ฌ๋ฉด ์ฐธ์
๋๋ค.
False # ๋ถ์ด ๊บผ์ ธ์๋์? ๊ทธ๋ฌ๋ฉด ๊ฑฐ์ง์
๋๋ค.
List
Python ๋ฆฌ์คํธ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ํ ํญ๋ชฉ์ ์ ์ฅํ ์ ์๋ ์ ๋ ฌ๋ ์ปฌ๋ ์ ์ ๋๋ค. ๋ฆฌ์คํธ๋ JavaScript์ ๋ฐฐ์ด๊ณผ ๋น์ทํฉ๋๋ค.
Example:
[0, 1, 2, 3, 4, 5] # ๋ชจ๋ ๋์ผํ ๋ฐ์ดํฐ ์ ํ - ์ซ์ ๋ฆฌ์คํธ
['Banana', 'Orange', 'Mango', 'Avocado'] # ๋ชจ๋ ๋์ผํ ๋ฐ์ดํฐ ์ ํ - ๋ฌธ์์ด ๋ฆฌ์คํธ(๊ณผ์ผ)
['Finland','Estonia', 'Sweden','Norway'] # ๋ชจ๋ ๋์ผํ ๋ฐ์ดํฐ ์ ํ - ๋ฌธ์์ด ๋ฆฌ์คํธ(๊ตญ๊ฐ)
['Banana', 10, False, 9.81] # ๋ฆฌ์คํธ์ ๋ค์ํ ๋ฐ์ดํฐ ์ ํ - ๋ฌธ์์ด, ์ ์, ๋ถ์ธ ๋ฐ ๋ถ๋ ์์์
Dictionary
Python ์ฌ์ ๊ฐ์ฒด๋ ํค ๊ฐ ์ ํ์์ ์ ๋ ฌ๋์ง ์์ ๋ฐ์ดํฐ ๋ชจ์์ ๋๋ค.
Example:
{
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'country':'Finland',
'age':250,
'is_married':True,
'skills':['JS', 'React', 'Node', 'Python']
}
Tuple
ํํ์ ๋ชฉ๋ก๊ณผ ๊ฐ์ ๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์ ๋ ฌ๋ ๋ชจ์์ด์ง๋ง ํํ์ด ์์ฑ๋๋ฉด ์์ ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ๋ณํ ์ ์์ต๋๋ค.
Example:
Set
์งํฉ์ ๋ชฉ๋ก ๋ฐ ํํ๊ณผ ์ ์ฌํ ๋ฐ์ดํฐ ์ ํ์ ๋ชจ์์ ๋๋ค. ๋ชฉ๋ก ๋ฐ ํํ๊ณผ ๋ฌ๋ฆฌ ์งํฉ์ ์์๊ฐ ์ง์ ๋ ํญ๋ชฉ ๋ชจ์์ด ์๋๋๋ค. ์ํ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก Python์์ set์ ๊ณ ์ ํ ํญ๋ชฉ๋ง ์ ์ฅํฉ๋๋ค.
์ดํ ์น์ ์์๋ ๊ฐ๊ฐ์ ๋ชจ๋ Python ๋ฐ์ดํฐ ์ ํ์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค.
Example:
๋ฐ์ดํฐ ํ์ ์ฒดํฌ
ํน์ ๋ฐ์ดํฐ/๋ณ์์ ๋ฐ์ดํฐ ์ ํ์ ํ์ธํ๊ธฐ ์ํด type ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค. ๋ค์ ํฐ๋ฏธ๋์์ ๋ค์ํ Python ๋ฐ์ดํฐ ์ ํ์ ๋ณผ ์ ์์ต๋๋ค:
Python ํ์ผ
๋จผ์ ํ๋ก์ ํธ ํด๋์ธ 30DaysOfPython์ ์ฝ๋๋ค. ์ด ํด๋๊ฐ ์์ผ๋ฉด 30DaysOfPython์ด๋ผ๋ ํด๋ ์ด๋ฆ์ ๋ง๋ญ๋๋ค. ์ด ํด๋ ์์ helloworld.py๋ผ๋ ํ์ผ์ ๋ง๋ญ๋๋ค. ์ด์ Visual Studio ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ Python ๋ํํ ์ ธ์์ ์ํํ ์์ ์ ์ํํด ๋ณด๊ฒ ์ต๋๋ค.
Python ๋ํํ ์ ธ์ print๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ธ์ํ์ง๋ง Visual Studio ์ฝ๋์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด ๋ด์ฅ ํจ์ print()๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. print() ๋ด์ฅ ํจ์๋ print('arument1', 'argument2', 'argument3')*์ ๊ฐ์ด ํ๋ ์ด์์ ์ธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
Example:
ํ์ผ ์ด๋ฆ์ helloworld.py.
# Day 1 - 30DaysOfPython Challenge
print(2 + 3) # addition(+)
print(3 - 1) # subtraction(-)
print(2 * 3) # multiplication(*)
print(3 / 2) # division(/)
print(3 ** 2) # exponential(**)
print(3 % 2) # modulus(%)
print(3 // 2) # Floor division operator(//)
# Checking data types
print(type(10)) # Int
print(type(3.14)) # Float
print(type(1 + 3j)) # Complex number
print(type('Asabeneh')) # String
print(type([1, 2, 3])) # List
print(type({'name':'Asabeneh'})) # Dictionary
print(type({9.8, 3.14, 2.7})) # Set
print(type((9.8, 3.14, 2.7))) # Tuple
Python ํ์ผ์ ์คํํ๋ ค๋ฉด ์๋ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ์ธ์. Visual Studio Code์์ ๋ น์ ๋ฒํผ์ ์คํํ๊ฑฐ๋ ํฐ๋ฏธ๋์ python helloworld.py๋ฅผ ์ ๋ ฅํ์ฌ Python ํ์ผ์ ์คํํ ์ ์์ต๋๋ค.
๐ ์ข์ต๋๋ค. ๋น์ ์ ๋ฐฉ๊ธ 1์ผ์ฐจ ๋์ ์ ์๋ฃํ๊ณ ๋น์ ์ ์๋ํ ์ฌ์ ์ ์์ต๋๋ค. ์ด์ ๋์ ๊ทผ์ก์ ์ํ ๋ช ๊ฐ์ง ํ๋ จ์ ํด๋ด ์๋ค.
๐ป Exercises - Day 1
Exercise: Level 1
- ์ฌ์ฉ ์ค์ธ Python ๋ฒ์ ํ์ธ
- Python ๋ํํ ์ ธ์ ์ด๊ณ ๋ค์ ์์ ์ ์ํํฉ๋๋ค. ํผ์ฐ์ฐ์๋ 3๊ณผ 4์ ๋๋ค.
- ๋ํ๊ธฐ(+)
- ๋นผ๊ธฐ(-)
- ๊ณฑํ๊ธฐ(*)
- ๋๋จธ์ง(%)
- ๋๋๊ธฐ(/)
- ์ง์(**)
- ์ ์ ๋๋๊ธฐ(//)
- Python ๋ํํ ์ ธ์ ๋ฌธ์์ด์ ์๋๋ค. ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ด๋ฆ
- ๊ฐ์กฑ ์ด๋ฆ
- ๊ตญ๊ฐ ์ด๋ฆ
- I am enjoying 30 days of python
- ๋ค์ ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ์ ํ์ ํ์ธํ์ญ์์ค.:
- 10
- 9.8
- 3.14
- 4 - 4j
- ['Asabeneh', 'Python', 'Finland']
- ์ด๋ฆ
- ๊ฐ์กฑ ์ด๋ฆ
- ๊ตญ๊ฐ ์ด๋ฆ
Exercise: Level 2
- 30DaysOfPython ํด๋ ์์ day_1์ด๋ผ๋ ํด๋๋ฅผ ๋ง๋ญ๋๋ค. day_1 ํด๋ ์์ python ํ์ผ helloworld.py๋ฅผ ๋ง๋ค๊ณ ์ง๋ฌธ 1, 2, 3, 4๋ฅผ ๋ฐ๋ณตํ์ธ์. Python ํ์ผ์์ ์์ ํ ๋ _print()_๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์์ง ๋ง์ธ์. ํ์ผ์ ์ ์ฅํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ฌ ์คํํฉ๋๋ค.
Exercise: Level 3
- Number(Integer, Float, Complex), String, Boolean, List, Tuple, Set ๋ฐ Dictionary์ ๊ฐ์ ๋ค์ํ Python ๋ฐ์ดํฐ ์ ํ์ ๋ํ ์์ ๋ฅผ ์์ฑํฉ๋๋ค.
- ์ฐธ๊ณ Euclidian distance (2, 3) ๊ณผ (10, 8) ์ฌ์ด
๐ ์ถํํฉ๋๋ค ! ๐