9แแ
ฎแแ
ก_แแ
ฉแแ
ฒแฏแแ
ชแแ
ขแแ
ตแแ
ต_แแ
ชแแ
ฆ.pdf
1.30MB
9แแ
กแแ
ต_แแ
ฉแแ
ฒแฏแแ
ชแแ
ขแแ
ตแแ
ต_แแ
กแผแแ
ดแแ
กแซ.pdf
0.70MB
๋ชจ๋๊ณผ ํจํค์ง
์ฐธ๊ณ ๋์ : ๋ฐ์ดํฐ ๊ณผํ์ ์ํ ํ์ด์ฌ ํ๋ก๊ทธ๋๋ฐ, ์ต์์ฒ
๋ชจ๋๊ณผ ํจํค์ง์ ์ดํด
- ๋ชจ๋์ ๊ฐ๋ → ํ๋ํ๋ ์ฐ๊ฒฐํด ์ด๋ค ๋ชฉ์ ์ ๊ฐ์ง ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์ํ ์์ ํ๋ก๊ทธ๋จ์ธํฐํ์ด์ค? ํด๋น ๋ชจ๋์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ชจ๋ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํ ์ฝ์random ๋ชจ๋ : ๋์๋ฅผ ์ฝ๊ฒ ์์ฑ์์ผ์ฃผ๋ ๋ชจ๋
- import random random.randint(l, 1000) # 198
- ํ์ด์ฌ์์์ ๋ชจ๋
- ๊ฐ ๋ชจ๋๋ง๋ค ์ ๋ง๋ค ์ญํ ์ด ์์ด ์๋ก ๋ค๋ฅธ ๋ชจ๋๊ณผ ์ธํฐํ์ด์ค๋ง ์ฐ๊ฒฐ๋๋ฉด ์ฌ์ฉํ ์ ์๋ค.
- ์์ ํ๋ก๊ทธ๋จ ์กฐ๊ฐ
- ํจํค์ง์ ๊ฐ๋ from ํค์๋ ์ฌ์ฉ : ๋ชจ๋์ ํธ์ถํ๊ธฐ ์ํด ํจํค์ง๋ถํฐ ํธ์ถ
- ๋ชจ๋์ ๋ฌถ์
๋ชจ๋ ๋ง๋ค๊ธฐ
- ๋ชจ๋ ๋ง๋ค๊ธฐ ์ค์ต๋ค๋ฅธ ํ์ด์ฌ ํ์ผ์ด๋ ํ์ด์ฌ ์
ธ์์ import๋ฌธ์ ์ฌ์ฉํ์ฌ ํด๋น ๋ชจ๋์ ํจ์๋ฅผ ์ฝ๊ฒ ๋ถ๋ฌ๋ผ ์ ์๋ค.
<aside> ๐ก ํธ์ถ๋ฐ๋ ๋ชจ๋๊ณผ ํธ์ถํ์ฌ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ ๋๋ ํฐ๋ฆฌ ์์ ์์ด์ผ ํ๋คimport fah_converter print("Enter a Celsius value:") Celsius = float(inputO) fahrenheit = fah_converter.covert_c_to_f(celsiiis) # covert_c_to_f() ํจ์ ์ฌ์ฉ print("That’s", fahrenheit, "degrees Fahrenheit.") # 'module_ex.py'๋ก ์ ์ฅ
- </aside>
- def covert_c_to_f(celcius_value)๏ผ return celcius_value *9.0/5+32 # 'fah_converter.py'๋ก ์ ์ฅ -> fah_converter๊ฐ ๋ชจ๋
- ํ์ด์ฌ์์๋ .py ํ์ผ ์์ฒด๊ฐ ๋ชจ๋์ด๋ค. ๊ฐ์ฅ ์ฝ๊ฒ ํ์ด์ฌ ๋ชจ๋์ ๋ง๋๋ ๋ฐฉ๋ฒ: ํ์ฌ ์ค์ต์ค์ธ ๋๋ ํฐ๋ฆฌ์์ .py ํ์ผ์ ํ๋ ๋ง๋ค๊ณ , ๊ทธ ํ์ผ์ ํ์ํ ํจ์๋ฅผ ์ ์ฅ
- ๋ค์์คํ์ด์คํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ํจ์ ์ด๋ฆ๊ณผ ํธ์ถ๋ ๋ชจ๋์ ํจ์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ ์ฌ์ฉ
- ๋ค์ ์คํ์ด์ค ๋ง๋๋ ๋ฒ
- ๋ชจ๋ ์ด๋ฆ์ ์๋ฆฌ์์ค(alias)๋ฅผ ์์ฑํ์ฌ ๋ชจ๋ ์์ผ๋ก ์ฝ๋๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ > ๊ฐ์ฅ ์ ํธํ๋ ๋ฐฉ๋ฒ
- from ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ชจ๋์์ ํน์ ํจ์ ๋๋ ํด๋์ค๋ง ํธ์ถํ๋ ๋ฐฉ๋ฒ
‘from ๋ชจ๋๋ช import ๋ชจ๋ ์์ ์๋ ํจ์๋ช ’์ ํํ๋ก ์์ฑ<aside> ๐ก from์ ๊ผญ ๋ชจ๋์ ํธ์ถํ๊ธฐ ์ํ ํค์๋๊ฐ ์๋๋คํจํค์ง๋ฅผ ํธ์ถํ๊ฑฐ๋ ํด๋น ํจํค์ง ์์ ์๋ ๋ชจ๋์ ํธ์ถํ ๋๋ from ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋คfrom fah_converter import covert_c_to_f print(covert_c_to_f(41.6))
- ํด๋น ๋ชจ๋ ์์ ์๋ ๋ชจ๋ ํจ์, ํด๋์ค, ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๋ ๋ณํ(*)๋ฅผ ์ฌ์ฉ
from fah_converter import print(covert_c_to_f(41.6))
- ‘from ๋ชจ๋๋ช import ์’: ํด๋น ๋ชจ๋ ์์ ์๋ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์์ค๋ฅผ ํธ์ถ
- </aside>
- : ํด๋น ๋ชจ๋ ์์ ์๋ ํจ์๋ฅผ ๊ฐ์ ธ๋ค ์ฌ์ฉํ ์ ์๋ค. (๋ณ๋์ ๋ชจ๋๋ช ์ ์จ ์ฃผ์ง ์์๋ ๋จ๋ ์ฌ์ฉ ๊ฐ๋ฅ)
- import fah_converter as fah print(fah.covert_c_to_f(41.6))
- ๋ค์ ์คํ์ด์ค ๋ง๋๋ ๋ฒ
- ๋ชจ๋ ํธ์ถ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒ
- ๋ด์ฅ ๋ชจ๋์ ์ฌ์ฉ
- random ๋ชจ๋
import random print(random.randint (0, 100)) # 0-100 ์ฌ์ด์ ์ ์ ๋์๋ฅผ ์์ฑ print(random.random()) # ์ผ๋ฐ์ ์ธ ๋์ ์์ฑ
- time ๋ชจ๋
import time print(time.localtimeO) # ํ์ฌ ์๊ฐ ์ถ๋ ฅ
- urllib ๋ชจ๋
import urllib.request response = urllib.request.urlopen("http๏ผ//theteamlab.io") print(response.read())
- ๋ํ์ ์ผ๋ก urllib์ request ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ํน์ URL์ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ค.
- ๋ํ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ํ์ฌ ์๊ฐ์ ์ ์ ์๋ค.
- ์ ์ ๋ชจ๋์ ์์ฑํ๋ randint() ํจ์ / ์์์ ๋์๋ฅผ ์์ฑํ๋ random() ํจ์๊ฐ ์๋ค
ํจํค์ง ๋ง๋ค๊ธฐ
- ํจํค์ง์ ๊ตฌ์ฑ์ฆ, ์ฌ๋ฌ ๊ฐ์ .py ํ์ผ์ด ํ๋์ ๋๋ ํฐ๋ฆฌ์ ๋ค์ด๊ฐ ์๋ ๊ฒ์ ‘ํจํค์ง’๋ผ๊ณ ํ๋ค.<aside> ๐ก ํ์ผ๋ช ์์ฒด๊ฐ ์์ฝ์ด๋ฅผ ๋ฐ๋์ ์ง์ผ์ผ๋ง ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.๋ฐ๋ผ์ ํจํค์ง ๋ด์ ๋ช๋ช ํ์ผ์๋ _ _ init _ , _ _ main _ ๋ฑ์ ํค์๋ ํ์ผ๋ช ์ด ์ฌ์ฉ๋๋ค.
- </aside>
- ํ์ด์ฌ์ ๋ชจ๋์ ๊ตฌ์ฑํ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจํค์ง์๋ ์์ฝ์ด๊ฐ ์๋ค.
- ํจํค์ง : ํ๋์ ๋ํ ํ๋ก์ ํธ๋ฅผ ์ํํ๊ธฐ ์ํ ๋ชจ๋์ ๋ฌถ์ ๋ชจ๋์ ํ๋์ ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ํจํค์ง๋ ํ์ผ์ด ํฌํจ๋ ๋๋ ํฐ๋ฆฌ(ํด๋)๋ก ๊ตฌ์ฑ๋๋ค.
- ํจํค์ง ๋ง๋ค๊ธฐ ์ค์ต
- 1๋จ๊ณ : ๋๋ ํฐ๋ฆฌ ๊ตฌ์ฑํ๊ธฐ
- crawling๏ผํฌ๋กค๋ง๏ผ: ์ฃผ์ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ์ธํฐ๋ท์์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ
- database๏ผ๋ฐ์ดํฐ๋ฒ ์ด์ค๏ผ: ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๊ธฐ๋ฅ
- analysis๏ผ๋ถ์๏ผ: ํด๋น ์ ๋ณด๋ฅผ ๋ถ์ํ์ฌ ์๋ฏธ ์๋ ๊ฐ์ ๋ฝ์๋ด๋ ๊ธฐ๋ฅ
mkdir roboadvisor cd roboadvisor mkdir crawling mkdir database mkdir analysis
- 2๋จ๊ณ : ๋๋ ํฐ๋ฆฌ๋ณ๋ก ํ์ํ ๋ชจ๋ ๋ง๋ค๊ธฐ
def series_test(): print("series")
์ค์ ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํ์ด์ฌ ์ ธ์์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํ๋ค.</aside>def statics_test(): print("statics")
- 3๋จ๊ณ : ๋๋ ํฐ๋ฆฌ๋ณ๋ก _ _init _ _.py ๊ตฌ์ฑํ๊ธฐ
- 4๋จ๊ณ: _ _ main _ _.py ํ์ผ ๋ง๋ค๊ธฐ
from analysis.series import series_test from crawling.parser import parser_test if __name__ == '__main__': series_test() parser_test()
- 5๋จ๊ณ : ์คํํ๊ธฐ๏ผํจํค์ง ์ด๋ฆ๋ง ํธ์ถ)
- python roboadvisor series parse
- ๊ธฐ๋ณธ์ ์ผ๋ก ํธ์คํด์ผ ํ๋ ์ฌ๋ฌ ๋ชจ๋์ from๊ณผ import๋ฌธ์ผ๋ก ํธ์ถํ ํ, if ๊ตฌ๋ฌธ ์๋์ ์ค์ ์คํ ์ฝ๋ ์์ฑ
- import analysis import crawling import database __all__= ['analysis', 'crawling', 'database']
- : ํด๋น ๋๋ ํฐ๋ฆฌ๊ฐ ํ์ด์ฌ์ ํจํค์ง๋ผ๊ณ ์ ์ธํ๋ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ
- from roboadvisor.analysis import series series.series_test()
- <aside> ๐ก roboadvisor์ ์์ ๋๋ ํฐ๋ฆฌ์์ ํ์ด์ฌ ์ ธ์ ์คํํด์ผ ์ ์์ ์ผ๋ก ์ํ
- analysis ๋๋ ํฐ๋ฆฌ์ ์๋ series.py์ statics.py์ ๋ค์ด๊ฐ ์ฝ๋
- _ _ init _ _.py : ๊ฐ ๋๋ ํฐ๋ฆฌ๊ฐ ํจํค์ง์์ ๋ํ๋ด๋ ์์ฝ ํ์ผ
- ํ๋์ ํจํค์ง๋ ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ก ๋ง๋ค ์ ์์ผ๋ฏ๋ก ํจํค์ง ์์ ๋ ํจํค์ง๊ฐ ๋ค์ด๊ฐ ์ ์๋ค.
- ๋จผ์ cmd ์ฐฝ์ ๋ค์ ๋ช ๋ น์ ์ ๋ ฅํ์ฌ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
- ์ธํฐ๋ท์์ ์ฃผ์ ์ ๋ณด๋ฅผ ๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ , ํ์ํ ์ ๋ณด๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ
- ํจํค์ง ๋ค์ ์คํ์ด์ค
- ์ ๋์ฐธ์กฐ
- ์๋ ์ฐธ์กฐ
- But ํจํค์ง ๋ด์์๋ ์๋ ์ฐธ์กฐ๋ก ํธ์ถํ๋ ๊ฒ์ ์ถ์ฒํ์ง ์๋๋ค. ์ฝ๋๋ฅผ ๊ฐ๋ตํ ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ํจํค์ง ์ ์ฒด๋ฅผ ๋ณด๋ ์ ์ฅ์์๋ ๋ชจ๋ ํจํค์ง์ ๊ฒฝ๋ก๋ฅผ ์ ํํ ๊ธฐ๋กํ๋ ๊ฒ์ด ์ดํดํ๊ธฐ ์ฝ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ํจํค์ง ๋ด๋ถ์์ ๋ค๋ฅธ ํจํค์ง๋ฅผ ๋ถ๋ฅผ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ!
- ํจํค์ง ๋ด์์ ๋ชจ๋์ ์๋ก ํธ์ถํ ๋ ์ฌ์ฉ
๊ฐ์ํ๊ฒฝ ์ฌ์ฉํ๊ธฐ
- ๊ฐ์ํ๊ฒฝ์ ๊ฐ๋ ํจํค์ง๋ฅผ ์ค์นํ ๋ ๋ค๋ฅธ ํ๋ก์ ํธ๊ฐ ์ํฅ์ ์ฃผ์ง ์๋๋ก ๋ ๋ฆฝ์ ์ธ ํ๋ก์ ํธ ์ํ ํ๊ฒฝ ๊ตฌ์ฑ
- ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ํจํค์ง๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ํ๊ฒฝ ์ค์ ํ๊ธฐ
- ๊ฐ์ํ๊ฒฝ ๋ง๋ค๊ธฐ
my_project๋ผ๋ ์ด๋ฆ์ ๊ฐ์ํ๊ฒฝ์ python 3.4 ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด๋ผ.# cmd ์ฐฝ์ ์ ๋ ฅ conda create -n my_project python=3.4 # conda -> ์คํ ๋ช ๋ น์ด์ด๊ณ , create -> ๊ฐ์ํ๊ฒฝ์ ๋ง๋๋ ์ธ์, # -n my_project์์ -n : name์ ์ค์๋ง, my_project : ๊ตฌ์ฑํ ๊ฐ์ํ๊ฒฝ ์ด๋ฆ # python=3.4 : ์ค์น๋๋ ํ์ด์ฌ์ ๋ฒ์
- ๊ฐ์ํ๊ฒฝ ์คํํ๊ธฐ
my_project๋ผ๋ ๊ฐ์ํ๊ฒฝ์ ํ์ฑํํ๋ผ๋ ๋ปactivate my.project
ํ์ฌ ์คํ๋๋ ํ์ด์ฌ์ ์์น๊ฐ ์ด๋์ธ์ง ์ถ๋ ฅ๋๋ค.์คํ๋ ๊ฐ์ํ๊ฒฝ ์ข ๋ฃwhere python
- ๊ฐ์ํ๊ฒฝ ํจํค์ง ์ค์นํ๊ธฐ
conda install ๋ค์์ ํจํค์ง ์ด๋ฆ์ ๋ฃ๋๋ค.conda install matplotlib
- ๊ฐ์ํ๊ฒฝ ํจํค์ง ์ค์ตํ๊ธฐ
- deactivate
- ๊ตฌ์ฑ๋ ๊ฐ์ํ๊ฒฝ์ ์ด๋ฆ์ activate ๋ค์์ ๋ฃ์ผ๋ฉด ํด๋น ๊ฐ์ํ๊ฒฝ์ด ์คํ๋๊ณ , ํ๋กฌํํธ ์์ (my_project)๋ผ๋ ๊ฐ์ํ๊ฒฝ ์ด๋ฆ์ด ๋ถ๋๋ค. (ํด๋น ๊ฐ์ํ๊ฒฝ์ ์ธํฐํ๋ฆฌํฐ๋ง ์คํ)