1.1 ํ์ด์ฌ์ด๋?
- ํ์ด์ฌ(Python)์ 1990๋
์์คํ
๋ฅด๋ด์ ๊ท๋ ๋ฐ ๋ก์ฌ(Guido van rossum)์ด ๊ฐ๋ฐํ ์ธํฐํ๋ฆฌํฐ ์ธ์ด.
- ์ธํฐํ๋ฆฌํฐ ์ธ์ด: ์์ค ์ฝ๋๋ฅผ ํ ์ค์ฉ ํด์ํ ํ ๊ทธ๋๊ทธ๋ ์คํํด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ํ์ธํ ์ ์๋ ์ธ์ด
1.2 ํ์ด์ฌ์ ํน์ง
- ํ์ด์ฌ์ ์ธ๊ฐ๋ค์ด ์ธ์ด์ด๋ค
- ๋ฌธ๋ฒ์ด ์ฌ์ ๋น ๋ฅด๊ฒ ๋ฐฐ์ธ ์ ์๋ค
- ๋ฌด๋ฃ์ด์ง๋ง ๊ฐ๋ ฅํ๋ค
- ๊ฐ๊ฒฐํ๋ค
- ํ๋ก๊ทธ๋๋ฐ์ ์ฆ๊ธฐ๊ฒ ํด ์ค๋ค
- ๊ฐ๋ฐ ์๋๊ฐ ๋น ๋ฅด๋ค
1.3 ํ์ด์ฌ์ผ๋ก ๋ฌด์์ ํ ์ ์์๊น?
ํ์ด์ฌ์ผ๋ก ํ ์ ์๋ ์ผ
- ์น ํ๋ก๊ทธ๋๋ฐ
- ์ธ๊ณต์ง๋ฅ๊ณผ ๋จธ์ ๋ฌ๋
- → ์ฌ์ดํท๋ฐ(scikit-learn), ํ
์ํ๋ก(TensorFlow), ํ์ดํ ์น(PyTorch), ์ผ๋ผ์ค(Keras)
- ์์น ์ฐ์ฐ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐ์ดํฐ ๋ถ์
- → ๋ํ์ด, ํ๋ค์ค(Pandas), ๋งทํ๋กฏ๋ฆฝ(Matplotlib)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก๊ทธ๋๋ฐ
- → ์ฌ์ด๋ฒ ์ด์ค(Sybase), ์ธํฌ๋ฏน์ค(Infomix), ์ค๋ผํด(Oracle), MySQL, PostgreSQL, pickle
- ์์คํ
์ ํธ๋ฆฌํฐ ์ ์ํ๊ธฐ
- GUI ํ๋ก๊ทธ๋๋ฐ
- C/C++์ ๊ฒฐํฉํ๊ธฐ
- ์ฌ๋ฌผ ์ธํฐ๋ท
ํ์ด์ฌ์ผ๋ก ํ ์ ์๋ ์ผ
- ์์คํ
๊ณผ ๋ฐ์ ํ ํ๋ก๊ทธ๋๋ฐ ์์ญ
- ๋ชจ๋ฐ์ผ ํ๋ก๊ทธ๋๋ฐ
1.4 ํ์ด์ฌ ์ค์นํ๊ธฐ
์๋์ฐ์์ ํ์ด์ฌ ์ค์นํ๊ธฐ
1. ๋จผ์ ํ์ด์ฌ ๊ณต์ ํํ์ด์ง์ ๋ค์ด๋ก๋ ํ์ด์ง(www.python.org/downloads)์์ ์๋์ฐ์ฉ ํ์ด์ฌ ์ธ์ด ํจํค์ง๋ฅผ ๋ด๋ ค๋ฐ๋๋ค. ๋ค์ ํ๋ฉด์์ Python 3.x๋ก ์์ํ๋ ๋ฒ์ ์ค ๊ฐ์ฅ ์ต์ ์ ์๋์ฐ ์ค์น ํ์ผ์ ๋ด๋ ค๋ฐ์.
2. ์ค์น ํ์ผ์ ์คํํ ํ [Install Now]๋ฅผ ํด๋ฆญํ๋ฉด ์ค์น๊ฐ ์งํ๋๋ค. ์ด๋ ํ์ด์ฌ์ด ์ด๋ ๊ณณ์์๋ ์ง ์คํ๋ ์ ์๋๋ก [Add python.exe to PATH] ์ต์
์ ๋ฐ๋์ ์ ํ.
3. ์ค์น๊ฐ ์๋ฃ๋๋ฉด [close]๋ฅผ ํด๋ฆญํ์ฌ ์ข
๋ฃํ๋ค. ํ์ด์ฌ์ด ์ ์์ ์ผ๋ก ์ค์น๋์๋ค๋ฉด [์์] ๋ฉ๋ด์ ๊ฒ์ ์ฐฝ์์ python์ ๊ฒ์ํ์ฌ ํ์ด์ฌ ์คํ ํ๋ก๊ทธ๋จ์ ์ฐพ์ ์ ์๋ค.
๋งฅ์์ ํ์ด์ฌ ์ค์นํ๊ธฐ
1. ํ์ด์ฌ ๊ณต์ ํํ์ด์ง(www.python.org)์์ [Downloads] ๋ฉ๋ด๋ฅผ ํด๋ฆญํ์ฌ ๋งฅ(Mac)์ฉ ํ์ด์ฌ ์ค์น ํ์ผ์ ๋ด๋ ค๋ฐ์ ํ ๋ค์ ํ๋ฉด์์ [Download Python 3.11.x]๋ฅผ ํด๋ฆญํ๋ฉด ๋๋ค.
2. ๊ทธ๋ฐ ๋ค์ ๋ด๋ ค๋ฐ์ python-3.11.x-macos1.pkg ํ์ผ์ ์คํํ์ฌ ์ค์น.
3. ์ค์น๊ฐ ์๋ฃ๋๋ฉด ํ์ด์ฌ์ด ์ ๋๋ก ์ค์น๋๋์ง ํ์ธํ๊ธฐ ์ํด ํฐ๋ฏธ๋์์ ๋ค์๊ณผ ๊ฐ์ด ๋ช
๋ น์ ์
๋ ฅํด ์์ ์ ๋งฅ์ ์ค์น๋ ํ์ด์ฌ ๋ฒ์ ์ ํ์ธํด ๋ณด์. ๊ตฌ ๋ฒ์ ์ ๋งฅ์๋ ํ์ด์ฌ 2.7 ๋ฒ์ ์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ด ์๊ธฐ ๋๋ฌธ์ python์ ์
๋ ฅํ๋ฉด ํ์ด์ฌ 2.7์ด ์คํ๋๋ค. ๋งฅ์์๋ ํญ์ ‘python’ ๋์ ‘python3’ ๋ช
๋ น์ ์ฌ์ฉํ์. ํ์ด์ฌ ๋ฒ์ ์ด ์ ๋๋ก ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ ๊ฒ์ด๋ค.
pahkey@mymac ~ % python3 -V
Python 3.11.2
1.5 ํ์ด์ฌ ๋๋ฌ๋ณด๊ธฐ
01. ํ์ด์ฌ ๊ธฐ์ด ์ค์ต ์ค๋นํ๊ธฐ
- ์์ ๊ฐ์ ์ฐฝ์ 'ํ์ด์ฌ ๋ํํ ์ธํฐํ๋ฆฌํฐ'๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ธํฐํ๋ฆฌํฐ: ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์์ค ์ฝ๋๋ฅผ ์คํํ๋ ํ๊ฒฝ
- ํ์ด์ฌ ๋ํํ ์ธํฐํ๋ฆฌํฐ๋ฅผ ๊ฐ๋จํ 'ํ์ด์ฌ ์
ธ(python shell)'์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- ํ์ด์ฌ ์
ธ ์ฐฝ์์ 3๊ฐ์ ๊บพ์ ๊ดํธ >>>๋ฅผ ํ๋กฌํํธ(prompt)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ํ๋กํํธ >>> ๊ฐ ์๋ ๊ณณ์ด ์
๋ ฅํ๋ ๋ถ๋ถ์ด๋ค.
- ๋ํํ: ์
๋ ฅ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ์ด ๋ฐ๋ก ์ถ๋ ฅ๋๋ค.
- ์
์ถ๋ ฅ์ด ๋ฒ๊ฐ์ ์ด์ด์ง๋ ๊ฒ์ด ๋ง์น ๋ํํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊ธฐ ๋๋ฌธ์ ๋ํํ ์ธํฐํ๋ฆฌํฐ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ๋ํํ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ข
๋ฃํ ๋๋ Ctrl+z๋ฅผ ๋๋ฅธ ํ Enter๋ฅผ ๋๋ฅธ๋ค.
- ์ ๋์ค ๊ณ์ด์์๋ Ctrl+D ๋๋ quit()์ด๋ exit()๋ฅผ ์ฌ์ฉํ์ฌ ์ข
๋ฃํ๋ค.
>>> quit()
>>> exit()
>>> import sys
>>> sys.exit()
02. ํ์ด์ฌ ๊ธฐ์ด ๋ฌธ๋ฒ ๋ฐ๋ผ ํด๋ณด๊ธฐ
์ฌ์น์ฐ์ฐ
๋ณ์์ ์ซ์ ๋์
ํ๊ณ ๊ณ์ฐํ๊ธฐ
๋ณ์์ ๋ฌธ์ ๋์
ํ๊ณ ์ถ๋ ฅํ๊ธฐ
- a ๋ณ์์ "Python"์ด๋ผ๋ ๊ฐ์ ๋์
ํ ํ print(a)๋ผ๊ณ ์์ฑํ๋ฉด a ๊ฐ์ ์ถ๋ ฅํ๋ค.
- ํ์ด์ฌ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ค.
- print๋ฌธ์ ์๋ตํ๊ณ ๋ณ์ ์ด๋ฆ a๋ง ์
๋ ฅํ์ฌ a์ ๊ฐ์ ํ์ธํ ์๋ ์๋ค.
์กฐ๊ฑด๋ฌธ if
- ์ธํฐํ๋ฆฌํฐ ์ฐฝ์์ ํ๋กํํธ >>> ์๋ฆฌ์ ๋์ ๋ํ๋๋ '...'์ ์์ง ์
๋ ฅ ์ค์ธ ๋ฌธ์ฅ์ด ๋๋์ง ์์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
- if a > 1: ๋ค์ ๋ฌธ์ฅ์ spacebar 4๊ฐ ๋๋ Tab์ ์ด์ฉํด ๋ฐ๋์ ๋ค์ฌ ์ฐ๊ธฐ ํ ํ์ ๋ฌธ์ฅ์ ์์ฑํด์ผ ํ๋ค.
๋ฐ๋ณต๋ฌธ for
- for ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์คํํด์ผ ํ ๋ฌธ์ฅ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํด์ ์คํํ ์ ์๋ค.
- ์ด ์ฝ๋์ ์๋ฏธ๋ [1,2,3] ๋ฆฌ์คํธ์ ์์์๋ถํฐ ํ๋์ฉ ๊บผ๋ด a ๋ณ์์ ๋์
ํ ํ print(a)๋ฅผ ์ํํ๋ผ ์๋ฏธ์ด๋ค.
- ์ด๋ฅผ ์คํํ๋ฉด a์ ์ฐจ๋ก๋๋ก 1,2,3์ด๋ผ๋ ๊ฐ์ ๋์
ํ๊ณ print(a)์ ์ํด์ ๊ทธ ๊ฐ์ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํ๋ค.
๋ฐ๋ณต๋ฌธ while
- while๋ฌธ์ ์ผ์ ํ ์กฐ๊ฑด์ด ๋ง์กฑํ๋ ๋์ ๋ฌธ์ฅ์ ๋ฐ๋ณตํด์ ์ํํ๋ค.
- ์ ์์ ๋ i ๊ฐ์ด 3๋ณด๋ค ์์ ๋์ i = i + 1๊ณผ print(i)๋ฅผ ์ํํ๋ผ๋ ใด๋ง์ด๋ค.
- i = i + 1์ด๋ผ๋ ๋ฌธ์ฅ์ 'i์ ๊ฐ์ 1์ฉ ๋ํ๋ค'๋ผ๋ ์๋ฏธ์ด๋ค.
ํจ์
- def๋ ํ์ด์ฌ์์ ํจ์๋ฅผ ์ ์ํ ๋ ์ฌ์ฉํ๋ ์์ฝ์ด์ด๋ค.
- ์์ฝ์ด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ด๋ฏธ ๋ฌธ๋ฒ์ ์ธ ์ฉ๋๋ก ์ฌ์ฉํ๊ณ ์๋ ๋จ์ด๋ฅผ ๋งํ๋ค.
- ๋ฆฌํด(return)์ ํจ์์์ ๊ฐ์ ๋ฐํํ ๋ ์ฌ์ฉํ๋ค.
- ์ ์์ ๋ add ํจ์๋ฅผ ๋ง๋ค๊ณ ๊ทธ ํจ์๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง๋ฅผ ๋ณด์ฌ ์ค๋ค.
- add(a, b)์์ a, b๋ ์
๋ ฅ๊ฐ, a+b๋ ๊ฒฐ๊ด๊ฐ์ด๋ค.
- ์ฆ 3, 4๊ฐ ์
๋ ฅ์ผ๋ก ๋ค์ด์ค๋ฉด 3+4๋ฅผ ์ํํ๊ณ ๊ทธ ๊ฒฐ๊ด๊ฐ์ธ 7์ ๋ฆฌํดํ๋ค.
1.6 ํ์ด์ฌ๊ณผ ์๋ํฐ
ํ์ด์ฌ ๋ํํ ์ธํฐํ๋ฆฌํฐ๋ ๊ฐ๋จํ ์์ ๋ฅผ ํ ๋๋ ํธ๋ฆฌํ์ง๋ง ์ฌ๋ฌ ์ค์ ๋ณต์กํ ์์ค ์ฝ๋๋ฅผ ๊ฐ์ง ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋๋ ๋ถํธํ๋ค.
๋ํ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ข
๋ฃํ๋ฉด ์์ฑํ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ผ์ ธ ๋ค์ ์ฌ์ฉํ์ง ๋ชปํ๋ค๋ ๋จ์ ์ด ์๋ค.
๋ฐ๋ผ์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋๋ ์๋ํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์๋ํฐ(editor)๋ ์์ค ์ฝ๋๋ฅผ ํธ์งํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ๋๊ตฌ๋ฅผ ๋งํ๋ค.
์๋ํฐ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ข
๋ฅ๊ฐ ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ด์ฌ IDLE์ ์๋ํฐ๋ฅผ ์ฌ์ฉํ๋ค.
1. IDLE ์๋ํฐ๋ก ํ์ด์ฌ ํ๋ก๊ทธ๋จ ์์ฑํ๊ธฐ
- IDLE ์
ธ์ IDLE ์๋ํฐ์์ ์คํํ ํ๋ก๊ทธ๋จ์ ๊ฒฐ๊ณผ๊ฐ ํ์๋๋ ์ฐฝ์ผ๋ก, ์์์ ์ดํด๋ณธ ํ์ด์ฌ ์
ธ๊ณผ ๊ธฐ๋ฅ ๋ฉด์์ ๋์ผํ๋ค.
- ๋จ, IDLE ์
ธ์์ ๋ค์ฌ ์ฐ๊ธฐ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ด ๊ธฐ๋ณธ ํ์ด์ฌ ์
ธ๊ณผ ๋ค๋ฅด๋ค.
- IDLE ์
ธ ์ฐฝ ๋ฉ๋ด์์ [File → New File]์ ์ ํ
- # hello.py๋ ์ฃผ์์ด๋ค.
- ํ์ด์ฌ์์ #์ผ๋ก ์์ํ๋ ๋ฌธ์ฅ์ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ํ๋ก๊ทธ๋จ ์ํ์ ์ ํ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
- ์ฌ๋ฌ ์ค์ง๋ฆฌ ์ฃผ์์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ํฐ๋ฐ์ดํ 3๊ฐ๋ฅผ ์ฐ์์ผ๋ก ์ฌ์ฉํ """ ์ฌ์ด์ ์์ฑํ๋ฉด ๋๋ค.
- ํฐ๋ฐ์ดํ ๋์ ์์๋ฐ์ดํ 3๊ฐ '''๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.
- ํ๋ก๊ทธ๋จ ์คํ: Run → Run Module์ ์ ํํ๋ค(๋จ์ถํค: F5)
- ๋ก์ปฌ๋์คํฌ(C:)๋ก ์ด๋ํ ํ 'doit'์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋๋ ํฐ๋ฆฌ(ํด๋)๋ฅผ ์์ฑํ๊ณ ๊ทธ ์์ hello.py๋ผ๋ ์ด๋ฆ์ผ๋ก ํ์ผ์ ์ ์ฅํ์.
- C:\์ ํ์ผ์ ๋ฐ๋ก ์ ์ฅํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ๊ผญ C:\ ํ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ ํ ๊ทธ ์์ ํ์ผ์ ์ ์ฅํ์.
- ์๋ํฐ๋ก ํ์ด์ฌ ํ๋ก๊ทธ๋จ์ ์์ฑํ ํ ์ ์ฅํ ๋๋ ํ์ผ ์ด๋ฆ์ ํ์ฅ์๋ฅผ ํญ์ .py๋ก ํด์ผ ํ๋ค.
- ํ์ผ์ ์ ์ฅํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ค. ์คํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ด IDLE ์
ธ ์ฐฝ์ ํ์๋๋ค.
# editor.py
a = "python"
print(a)
print(1 + 1) # print ๋ฌธ์ ์ฌ์ฉํด์ผ ๊ฒฐ๊ด๊ฐ์ ์ถ๋ ฅํ ์ ์๋ค.
- ํ์ด์ฌ ์
ธ์ ๊ฒฝ์ฐ, ๋ณ์ a์ ํํ์ 1+1์ ๊ฐ์ ํ์ธํ๊ธฐ ์ํด์ print ํจ์๋ฅผ ์ฌ์ฉํด๋ ๋์ง๋ง print ํจ์ ์์ด๋ ๊ทธ ๊ฐ์ ํ์ธํ ์ ์๋ค.
- ํ์ง๋ง IDLE ์๋ํฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋ค์์ฒ๋ผ print ๋ฌธ์ ๋ฐ๋์ ์ฌ์ฉํด์ผ ํ๋ค.
2. ๋ช
๋ น ํ๋กํํธ ์ฐฝ์์ ํ์ด์ฌ ํ๋ก๊ทธ๋จ ์คํํ๊ธฐ
- IDLE ์๋ํฐ์์ F5๋ฅผ ๋๋ฌ ์คํํ ์๋ ์์ง๋ง, ์ค์ ์
๋ฌด์์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ช
๋ น ํ๋กฌํํธ ์ฐฝ์์ ํ์ด์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค.
- hello.py ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ๋จผ์ ๋ช
๋ น ํ๋กฌํํธ ์ฐฝ์ ์ด์ด ๋ณด์. [์๋์ฐ ํค + R]์ ๋๋ฅด๋ฉด ๋ค์๊ณผ ๊ฐ์ ์คํ ์ฐฝ์ด ๋ํ๋๋ค. ๋น์นธ์ ‘cmd’๋ฅผ ์
๋ ฅํ๊ณ [ํ์ธ]์ ํด๋ฆญํ๋ฉด ๋ช
๋ น ํ๋กฌํํธ ์ฐฝ์ด ์ด๋ฆฐ๋ค.
- C:\Users\yubin์์ yubin์ ํ์์ ์ปดํจํฐ ์ด๋ฆ์ด๋ค.
- ์ด์ ๋ค์๊ณผ ๊ฐ์ด ํ๋กฌํํธ์์ cd c:\doit์ด๋ผ๊ณ ์
๋ ฅํ๋ค.
- cd(change directory) ๋ช
๋ น์ด๋ ํ๋กฌํํธ๋ฅผ ๋ฐ๋ก ๋ค์์ ๋์ค๋ ๋๋ ํฐ๋ฆฌ๋ก ์ฎ๊ธด๋ค.
- ํ๋กฌํํธ๊ฐ c:\doit>์ผ๋ก ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- ์ด์ ๋ช
๋ น์ด python๊ณผ ์คํํ ํ๋ก๊ทธ๋จ ์ด๋ฆ์ ์
๋ ฅํ๋ฉด ํ์ด์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํด hello.py ํ๋ก๊ทธ๋จ์ ์คํํด ๋ณด์. → python hello.py
3. ์ถ์ฒํ๋ ์๋ํฐ
๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋
- ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋๋ฅผ ์ค์นํ ํ ํ์ด์ฌ์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ํ์ด์ฌ extension์ ์ค์นํ๋ ๊ฒ.
- ํ์ด์ฌ extension์ ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋์ [Extensions] ๋ฉ๋ด์์ ์ค์นํ ์ ์๋ค.
ํ์ด์ฐธ