๐Ÿ

005. Python

1. Python์ด๋ž€?

Python์€ ๊ท€๋„ ๋ฐ˜ ๋กœ์„ฌ์ด 1991๋…„ ๋ฐœํ‘œํ•œ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋‚ด๊ฐ€ ์˜๋„ํ•œ ๋ฐ”๋ฅผ ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ธฐ๊ณ„๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋งŒ์•ฝ์— ์ปดํ“จํ„ฐ๊ฐ€ ์š”๋ฆฌ์‚ฌ๋ผ๋ฉด ์–ด๋–ค ์žฌ๋ฃŒ๋“ค์„ ์ค€๋น„ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์š”๋ฆฌ๋ฅผ ํ•ด์„œ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์Œ์‹์„ ๋งŒ๋“ค๋„๋ก ๋ช…๋ น์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ .
ย 
Python์€ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ์ €๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋„ ์žˆ์„๊นŒ์š”?
์ €๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋˜๋Š” ๋กœ์šฐ ๋ ˆ๋ฒจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(low-level programming language)๋ž€ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๊ณ„์–ด์™€ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด์ง€๋งŒ ๋ฐฐ์šฐ๊ธฐ๊ฐ€ ์–ด๋ ค์šฐ๋ฉฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํž˜๋“  ๊ฒƒ์ด ๋‹จ์ ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (์ถœ์ฒ˜ : ์œ„ํ‚คํ”ผ๋””์•„)
ย 
์ฆ‰, ์šฐ๋ฆฌ๋Š” Python๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
notion imagenotion image

2. Python์˜ ์žฅ์ 

Python์€ 2019๋…„ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์„ ์ •๋˜๋Š” ๋“ฑ ์ฃผ๋ชฉ ๋ฐ›๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก , C๋‚˜ Java์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ธด ํ•˜์ง€๋งŒ Python์ด ์ดํ† ๋ก ์ธ๊ธฐ๊ฐ€ ๋งŽ์€ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”?
  1. ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์›Œ์š”!
    1. ์ •ํ•ด์ง„ Python ๋ฌธ๋ฒ•์— ์ž˜ ๋งž๊ฒŒ ์ž…๋ ฅํ•œ๋‹ค๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”. ์•„๋ž˜์™€ ๊ฐ™์ด print(โ€œ๋‚ด์šฉโ€)๋ผ๊ณ  ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค๋ฉด ์ถœ๋ ฅ๋ฌธ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      ๋ฌผ๋ก , ๋‹ค๋ฅธ ์–ธ์–ด๋„ ํ•ด๋‹น ๋ฌธ๋ฒ•์— ๋งž๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํŒŒ์ด์ฌ๊ณผ ๋‹ฌ๋ฆฌ ์•ž๋’ค์— ํ•„์š”ํ•œ ๋ฌธ์žฅ๋“ค์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ํŒŒ์ด์ฌ์€ ํ›จ์”ฌ ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
      print("hello world")
      ย 
  1. ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ด์š”! C์™€ ๊ฐ™์€ ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด๋ณด๋‹ค ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๊ฐ€ ์กฐ๊ธˆ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ณ  ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด๋Š” ์•ˆ์ •์ ์ด๊ณ  ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๊ณ„์—๊ฒŒ ๋” ์นœ์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‹คํ–‰ ์†๋„๊ฐ€ ๋” ๋น ๋ฅด์ฃ . ํŒŒ์ด์ฌ์€ ํ•œ ์ค„์„ ์ฝ๊ณ  ํ•œ ์ค„์„ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด๋ณด๋‹ค ๋นจ๋ฆฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹คํ–‰ ์†๋„๊ฐ€ ๋น ๋ฅด์ง„ ์•Š์Šต๋‹ˆ๋‹ค.
    1. ย 
  1. ๋ฌด๋ฃŒ์— ์—„์ฒญ๋‚œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ณด์œ 
    1. ํŒŒ์ด์ฌ์€ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ๋น„์šฉ ๊ฑฑ์ • ์—†์ด ์–ธ์ œ ์–ด๋””์„œ๋“  ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google์ด๋‚˜ YouTube์— Python์ด๋ผ๊ณ  ๊ฒ€์ƒ‰๋งŒ ํ•˜์…”๋„ ๋งŽ์€ ์ž๋ฃŒ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      ๐Ÿ’ก
      ์˜คํ”ˆ์†Œ์Šค๋ž€? ์ €์ž‘๊ถŒ์ž๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ๋ณ„ ๋‹ค๋ฅธ ์ œ์•ฝ ์—†์ด ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ๋ณต์ œ, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด
      ย 
  1. ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์–ด์š”!
    1. ํŒŒ์ด์ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์—…๋ฌด ์ž๋™ํ™”์—์„œ๋ถ€ํ„ฐ Django๋กœ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์‹œ์Šคํ…œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ œ์ž‘, IoT, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์ธ๊ณต์ง€๋Šฅ, game ๊ฐœ๋ฐœ ๋“ฑ ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Google, YouTube, kakao ๋“ฑ ๋งŽ์€ ๊ธฐ์—…์—์„œ ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ย 

3. Python์˜ ๋Œ€ํ‘œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋” ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด 'ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ž˜์‹œํ”ผ'๋ฅผ ๊ฒ€์ƒ‰ํ•ด์ฃผ์„ธ์š”.

3.1. NumPy

Numerical Python์˜ ์ค„์ž„๋ง๋กœ, ํ–‰๋ ฌ ์—ฐ์‚ฐ์ด๋‚˜ ๋Œ€๊ทœ๋ชจ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
ย 

3.2. Pandas

Python์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ–‰๊ณผ ์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋‹ค๋ฃจ๊ณ  ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
ย 

3.3. TensorFlow

์ธ๊ณต์ง€๋Šฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ google์—์„œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
ย 

4. ์˜์ƒ sample code(colab ํ™œ์šฉ)

x = 3 y = 7 x + y
print('hello world')
import requests from bs4 import BeautifulSoup #url์€ naver์—์„œ '์ตœ์‹ ์˜ํ™” ์ˆœ์œ„'๋กœ ๊ฒ€์ƒ‰ url = 'https://search.naver.com/search.naver?sm=tab_sug.top&where=nexearch&query=%EC%B5%9C%EC%8B%A0%EC%98%81%ED%99%94+%EC%88%9C%EC%9C%84&oquery=%EC%B5%9C%EC%8B%A0%EC%98%81%ED%99%94&tqi=hu8jolprvOsssfE0NVVssssst0o-117462&acq=%EC%B5%9C%EC%8B%A0%EC%98%81%ED%99%94&acr=1&qdt=0' response = requests.get(url) response.encoding = 'utf-8' html = response.text soup = BeautifulSoup(html, 'html.parser') ์˜ํ™”๋ฆฌ์ŠคํŠธ = soup.select('.name') # lecture ํด๋ž˜์Šค ํƒ์ƒ‰ for ์ˆœ์œ„, ์˜ํ™”๋ช… in enumerate(์˜ํ™”๋ฆฌ์ŠคํŠธ, 1): print(์ˆœ์œ„, ์˜ํ™”๋ช….text)
import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.ylabel('some numbers') plt.show()
ย