Python

[python] ๋ชจ๋“ˆ

winter17 2023. 2. 10. 17:27

๐ŸŒฑ  ํ‘œ์ค€ ๋ชจ๋“ˆ

  • ๋ชจ๋“ˆ(module): ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ง‘ํ•ฉ์ฒด
  • ํ‘œ์ค€๋ชจ๋“ˆ: ํŒŒ์ด์ฌ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด  ์žˆ๋Š” ๋ชจ๋“ˆ
  • ์™ธ๋ถ€๋ชจ๋“ˆ: ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“ค์–ด์„œ ๊ณต๊ฐœํ•œ ๋ชจ๋“ˆ
import ๋ชจ๋“ˆ ์ด๋ฆ„

 

โ–ถ๏ธ random ๋ชจ๋“ˆ

  • ๋žœ๋ค ํ•œ ๊ฐ’์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ
import random # random ๋ชจ๋“ˆ์ด๋ผ์„œ ๋งค๋ฒˆ ๊ฐ’์ด ๋ณ€ํ•จ
# from random import random, uniform, randrange, choice, shuffle, sample 
# from ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ importํ•ด๋„ ๋จ

# random(): 0.0 <= x < 1.0 ์‚ฌ์ด์˜ float ๋ฆฌํ„ด
random.random()
>> 0.5671614057098718

# uniform(min, max): ์ง€์ •ํ•œ ๋ฒ”์œ„ ์‚ฌ์ด์˜ float ๋ฆฌํ„ด
random.uniform(10,20)
>> 18.627114055572356

# randrange(): ์ง€์ •ํ•œ ๋ฒ”์œ„์˜ int ๋ฆฌํ„ด
# randrange(max): 0 ~ max
# randrange(min, max): min ~ max
>> randrange(10)
>> 6

# choice(list) : ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒ
random.choice([1,2,3,4,5])
>> 3

# shuffle(list) : ๋ฆฌ์ŠคํŠธ ์š”์†Œ๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ์„ž์Œ
random.choice([1,2,3,4,5])
>> 5

# sample(list, k=<์ˆซ์ž>) : ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ์ค‘์— k๊ฐœ๋ฅผ ๋ฝ‘๊ธฐ
random.sample([1,2,3,4,5], k=2)
>> [5,4]

 

โ–ถ๏ธ datetime ๋ชจ๋“ˆ

  • ๋‚ ์งœ, ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“ˆ
import datetime

now = datetime.datetime.now()
print(now.year)
>> 2023
print(now.month)
>> 2
print(now.day)
>> 10
print(now.hour)
>> 16
print(now.minute)
>> 18
print(now.second)
>> 24

today = datetime.datetime.today()
print(today.date())
>> 2023-02-10

 

โ–ถ๏ธ time ๋ชจ๋“ˆ

  • ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ
  • ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์ฝ”๋“œ ์ง„ํ–‰์„ ์ •์ง€ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ
import time

print('์ง€๊ธˆ๋ถ€ํ„ฐ 5์ดˆ ๋™์•ˆ ์ •์ง€ํ•ฉ๋‹ˆ๋‹ค')
print(time.sleep(5))
print('ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค')

>> ์ง€๊ธˆ๋ถ€ํ„ฐ 5์ดˆ ๋™์•ˆ ์ •์ง€ํ•ฉ๋‹ˆ๋‹ค # ์ž…๋ ฅ๋˜๊ณ  5์ดˆ ํ›„์—
>> None
>> ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค # ์ถœ๋ ฅ

 

โ–ถ๏ธ urllib ๋ชจ๋“ˆ

from urllib import request # urllib๋ชจ๋“ˆ์˜ request ๊ฐ€์ ธ์˜ค๊ธฐ

# request๋„ ๋ชจ๋“ˆ์ด๋ผ์„œ request ๋ชจ๋“ˆ์˜ urlopen()ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ด
# urlopen(): url ์ฃผ์†Œ์˜ ํŽ˜์ด์ง€๋ฅผ ์—ด์–ด์ฃผ๋Š” ํ•จ์ˆ˜ 
target = request.urlopen('http://google.com')
output = target.read()

print(output)

 

โ–ถ๏ธ math ๋ชจ๋“ˆ

# math ๋ชจ๋“ˆ์€ ๊ณผํ•™๊ณผ ๊ด€๋ จ๋œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ
# ์›น ๊ฐœ๋ฐœ์—์„œ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉX
import math

# ์‚ฌ์ธ
math.sin(1)
>> 0.8414709848078965

# ์ฝ”์‚ฌ์ธ
math.cos(1)
>> 0.5403023058681398

# ํƒ„์  ํŠธ
math.tan(1)
>> 1.5574077246549023

# ๋‚ด๋ฆผ
math.floor(2.5)
>> 2

# ์˜ฌ๋ฆผ
math.ceil(2.5)
>> 3

 

โ–ถ๏ธ from ๊ตฌ๋ฌธ

  • ๋ชจ๋“ˆ์—๋Š” ๋งŽ์€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด ์žˆ๋Š”๋ฐ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๋งŒ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ from ๊ตฌ๋ฌธ ์‚ฌ์šฉ
from ๋ชจ๋“ˆ ์ด๋ฆ„ import ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๋ณ€์ˆ˜ ๋˜๋Š” ํ•จ์ˆ˜
from math import sin, cos, tan, floor, ceil

# ์‚ฌ์ธ
sin(1)
>> 0.8414709848078965

# ์ฝ”์‚ฌ์ธ
cos(1)
>> 0.5403023058681398

# ํƒ„์  ํŠธ
tan(1)
>> 1.5574077246549023

# ๋‚ด๋ฆผ
floor(2.5)
>> 2

# ์˜ฌ๋ฆผ
ceil(2.5)
>> 3
# ๋ชจ๋“ˆ ์ด๋ฆ„์„ ๋ถ™์ด๊ธฐ ๊ท€์ฐฎ๊ณ  ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด *
from math import *

# ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋‹ค ๊ฐ€์ ธ์˜ค๋ฉด ์‹๋ณ„์ž ์ด๋ฆ„์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 
# from๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๊ธฐ

 

โ–ถ๏ธ as ๊ตฌ๋ฌธ

import ๋ชจ๋“ˆ as ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์‹๋ณ„์ž
import math as m

# ์‚ฌ์ธ
m.sin(1)
>> 0.8414709848078965

# ์ฝ”์‚ฌ์ธ
m.cos(1)
>> 0.5403023058681398

# ํƒ„์  ํŠธ
m.tan(1)
>> 1.5574077246549023

# ๋‚ด๋ฆผ
m.floor(2.5)
>> 2

# ์˜ฌ๋ฆผ
m.ceil(2.5)
>> 3

๐ŸŒฑ  ์™ธ๋ถ€ ๋ชจ๋“ˆ

  • ์™ธ๋ถ€ ๋ชจ๋“ˆ์€ ๋ง ๊ทธ๋Œ€๋กœ ์™ธ๋ถ€์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜๋ฅผ ํ•ด์ค˜์•ผ ํ•จ
  • ๋งŒ์•ฝ ์ด๋ฏธ ์„ค์น˜ํ•œ ๋ชจ๋“ˆ์„ ํ•œ ๋ฒˆ ๋” ์„ค์น˜ํ•œ๋‹ค๋ฉด 'Requirement already satisfied'๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋จ
pip install ๋ชจ๋“ˆ ์ด๋ฆ„
# pip or pip3

 

โ–ถ๏ธ Beautiful Soup ๋ชจ๋“ˆ

  • ์›น ํŽ˜์ด์ง€ ๋ถ„์„ ๋ชจ๋“ˆ
  • ์Šคํฌ๋ ˆํ•‘ํ•  ๋•Œ ์‚ฌ์šฉ

https://beautiful-soup-4.readthedocs.io/en/latest/

 

Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation

Non-pretty printing If you just want a string, with no fancy formatting, you can call unicode() or str() on a BeautifulSoup object, or a Tag within it: str(soup) # ' I linked to example.com ' unicode(soup.a) # u' I linked to example.com ' The str() functio

beautiful-soup-4.readthedocs.io

 

โ–ถ๏ธ Flask ๋ชจ๋“ˆ

  • ์ž‘์€ ๊ธฐ๋Šฅ๋งŒ์„ ์ œ๊ณตํ•˜๋Š” ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ
  • Django: ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ

https://flask.palletsprojects.com/en/2.2.x/

 

Welcome to Flask — Flask Documentation (2.2.x)

 

flask.palletsprojects.com

 

โ–ถ๏ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ

  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ์ •์ƒ์ ์ธ ์ œ์–ด๋ฅผ ํ•˜๋Š” ๋ชจ๋“ˆ
    • ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๋Š” ํ˜•ํƒœ์˜ ๋ชจ๋“ˆ (math..)
  • ํ”„๋ ˆ์ž„์›Œํฌ : ์ œ์–ด ์—ญ์ „์ด ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“ˆ
    • ์ œ์–ด์—ญ์ „ : ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ํ•จ์ˆ˜๋ฅผ ๋ชจ๋“ˆ์ด ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ => ์ œ์–ด๊ฐ€ ์—ญ์ „๋œ ๊ฒƒ (Flask..)

๐ŸŒฑ  ๋ชจ๋“ˆ ๋งŒ๋“ค๊ธฐ

  • ํŒŒ์ด์ฌ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์™ธ๋ถ€์—์„œ ์ฝ์–ด ๋“ค์ด๋ฉด ๋ชจ๋“ˆ ๋งŒ๋“ค๊ธฐ ์„ฑ๊ณต
  • ํŒจํ‚ค์ง€ : ๋ชจ๋“ˆ์ด ๋ชจ์ธ ๊ฒƒ

โ–ถ๏ธ __name__ ( __main__)

  • __name__ ์„ ์ถœ๋ ฅํ•˜๋ฉด  __main__์ด ์ถœ๋ ฅ๋จ
  • ๋ชจ๋“ˆ๋‚ด๋ถ€์—์„œ __name__ ์„ ์ถœ๋ ฅํ•˜๋ฉด ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์ด ์ถœ๋ ฅ๋จ
  • ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ(=๋ฉ”์ธ): ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ (์ฒซ ์ง„์ž… ํŒŒ์ผ)
    • ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ ๋‚ด๋ถ€์—์„œ์˜ __name__ ์€  __main__
if __name__ == '__main__':
	print('ํ˜„์žฌ ํŒŒ์ผ์ด ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ ๋งž๋‹ค๋ฉด ์ถœ๋ ฅ')