1. λͺ¨λ“ˆ  module

πŸ“  μ—¬λŸ¬ λ³€μˆ˜μ™€ ν•¨μˆ˜λ₯Ό 가지고 μžˆλŠ” 집합체

πŸ“  νŒŒμ΄μ¬μ— 기본적으둜 λ‚΄μž₯λ˜μ–΄ μžˆλŠ” λͺ¨λ“ˆμ„ 'ν‘œμ€€ λͺ¨λ“ˆ', λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ λ§Œλ“€μ–΄ κ³΅κ°œν•œ λͺ¨λ“ˆμ„ 'μ™ΈλΆ€ λͺ¨λ“ˆ'

 


 

1) λͺ¨λ“ˆμ˜ μ‚¬μš©

πŸ‘Ύ λ°˜λ“œμ‹œ κ°™μ€ λ””렉토리에 μžˆμ–΄μ•Ό ν•¨
πŸ‘Ύ λͺ¨λ“ˆμ— μ €μž₯된 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 방법
      A. λͺ¨λ“ˆ 전체λ₯Ό κ°€μ Έμ˜€λŠ” 방법
          - λͺ¨λ“ˆμ— μ €μž₯된 'λͺ¨λ“ ' ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³ μž ν•  λ•Œ
             ex. import λͺ¨λ“ˆ

# import λͺ¨λ“ˆμ΄λ¦„μœΌλ‘œ 뢈러옴

import converter

miles = converter.kilometer_to_miles(150)  # λͺ¨λ“ˆ.ν•¨μˆ˜() ν˜•μ‹μœΌλ‘œ 호좜
print(f'150km={miles}miles')  # 150km=93.20565miles

pounds = converter.gram_to_pounds(1000)
print(f'1000g={pounds}pounds')  # 1000g=2.20462pounds

 

 

      B. λͺ¨λ“ˆμ— ν¬ν•¨λœ ν•¨μˆ˜ μ€‘μ—μ„œ νŠΉμ • ν•¨μˆ˜λ§Œ κ³¨λΌμ„œ κ°€μ Έμ˜€λŠ” 방법
            ex. from λͺ¨λ“ˆ import ν•¨μˆ˜
                   from λͺ¨λ“ˆ import ν•¨μˆ˜1, ν•¨μˆ˜2
                   from λͺ¨λ“ˆ import *

from converter import kilometer_to_miles  # λͺ¨λ“ˆμ€ κ°€μ Έμ˜€μ§€ μ•Šκ³  νŠΉμ • ν•¨μˆ˜λ§Œ κ°€μ Έμ˜΄

miles = kilometer_to_miles(150)  # λͺ¨λ“ˆλͺ…을 λͺ…μ‹œν•˜μ§€ μ•Šκ³  μ‚¬μš©
print(f'150km={miles}miles')  # 150km=93.20565miles

print()
from converter import *  # λͺ¨λ“ˆμ€ κ°€μ Έμ˜€μ§€ μ•Šκ³  λͺ¨λ“ˆμ˜ λͺ¨λ“  ν•¨μˆ˜ κ°€μ Έμ˜΄

miles = kilometer_to_miles(150)  # λͺ¨λ“ˆλͺ…을 λͺ…μ‹œν•˜μ§€ μ•Šκ³  μ‚¬μš©
print(f'150km={miles}miles')

pounds = gram_to_pounds(1000)
print(f'1000g={pounds}pounds')  # λͺ¨λ“ˆλͺ…을 λͺ…μ‹œν•˜μ§€ μ•Šκ³  μ‚¬μš©

 


 

2) 별λͺ… μ‚¬μš©

πŸ‘Ύ  λͺ¨λ“ˆμ΄λ‚˜ ν•¨μˆ˜λ₯Ό import ν•˜λŠ” κ²½μš°μ— μ›λž˜ μ΄λ¦„ λŒ€μ‹  λ³„λͺ… aliasλ₯Ό μ§€μ •ν•˜κ³  μ‚¬μš©
πŸ‘Ύ  λͺ¨λ“ˆμ΄λ‚˜ ν•¨μˆ˜μ˜ 이름이 κΈ΄ κ²½μš°μ— 주둜 짧은 별λͺ…을 μ§€μ •ν•˜κ³  κΈ΄ 본래 이름 λŒ€μ‹  μ‚¬μš©
πŸ‘Ύ  별λͺ…을 지정할 λ•ŒλŠ” as ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©

import converter as cvt  # converter λͺ¨λ“ˆμ— cvtλΌλŠ” 별λͺ…을 지정

miles = cvt.kilometer_to_miles(150)  # 별λͺ…을 μ΄μš©ν•΄μ„œ ν•¨μˆ˜ μ‚¬μš©
print(f'150km={miles}miles')

pounds = cvt.gram_to_pounds(1000)
print(f'1000g={pounds}pounds')

print()
from converter import kilometer_to_miles as k_to_m  # ν•¨μˆ˜μ—λ„ 별λͺ…을 지정 κ°€λŠ₯

miles = k_to_m(150)  # ν•¨μˆ˜ 이름 λŒ€μ‹  별λͺ…을 μ‚¬μš©
print(f'150km={miles}miles')

 


 

2. math λͺ¨λ“ˆ

πŸ“  말 κ·ΈλŒ€λ‘œ μˆ˜ν•™κ³Ό κ΄€λ ¨λœ κΈ°λŠ₯을 가지고 μžˆλ‹€

λ³€μˆ˜ λ˜λŠ” ν•¨μˆ˜ μ„€λͺ…
μ›μ£Όμœ¨ pi 더 μ •ν™•ν•œ 파이 값을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄
ceil() & floor() μ „λ‹¬λœ 값을 μ •μˆ˜λ‘œ 올림 μ²˜λ¦¬ν•˜κ±°λ‚˜ λ‚΄λ¦Ό 처리
trunc() μ „λ‹¬λœ 값을 μ •μˆ˜λ‘œ μ ˆμ‚¬, μ–‘μˆ˜λ₯Ό μ²˜λ¦¬ν•  λ•ŒλŠ” 차이가 μ—†μ§€λ§Œ
음수λ₯Ό μ²˜λ¦¬ν•  λ•ŒλŠ” 결과의 차이가 μžˆλ‹€
sqrt() 제곱근 ꡬ함
pow() μ œκ³±μ„ ꡬ함

 

import math  # import ν›„ μ‚¬μš©

# 1) μ›μ£Όμœ¨ pi
print(math.pi)  # 3.141592653589793

# 2) ceil() ν•¨μˆ˜μ™€ floor() ν•¨μˆ˜
print(math.ceil(1.1))  # 2 / μ •μˆ˜λ‘œ 올림 처리
print(math.floor(1.9))  # 1 / μ •μˆ˜λ‘œ λ‚΄λ¦Ό 처리

# 3) trunc() ν•¨μˆ˜
print(math.trunc(-1.9))  # -1 / μ ˆμ‚¬μ΄λ―€λ‘œ μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό μž˜λΌλ²„λ¦Ό
print(math.floor(-1.9))  # -2 / λ‚΄λ¦Όμ΄λ―€λ‘œ -1.9 보닀 μž‘μ€ μ •μˆ˜λ‘œ λ‚΄λ¦Ό

# 4) sqrt() ν•¨μˆ˜
print(math.sqrt(25))  # 5.0 / 루트 25λ₯Ό 의미

 

3. random λͺ¨λ“ˆ

πŸ“  λ‚œμˆ˜ random number λ₯Ό μƒμ„±ν•˜λŠ” λͺ¨λ“ˆ
πŸ“  λ‚œμˆ˜λ₯Ό ν†΅ν•΄μ„œ κ°„λ‹¨ν•œ κ²Œμž„μ„ μ œμž‘ν•  수 있고 ν™•λ₯  μ²˜λ¦¬λ„ ν•  수 μžˆλ‹€

λ³€μˆ˜ λ˜λŠ” ν•¨μˆ˜ μ„€λͺ…
randint() μ „λ‹¬ν•˜λŠ” 두 인수 μ‚¬μ΄μ˜ μ •μˆ˜λ₯Ό μž„μ˜λ‘œ 생성
randrange() range() ν•¨μˆ˜λŠ” νŠΉμ •λ²”μœ„μ˜ μ •μˆ«κ°’λ“€μ„ λͺ¨λ‘ 생성할 수 μžˆμ§€λ§Œ,
randrange() ν•¨μˆ˜λŠ” κ·Έ νŠΉμ • λ²”μœ„μ— μ†ν•œ μ •μˆ˜μ€‘ ν•˜λ‚˜λ§Œ μž„μ˜λ‘œ 생성
random() 0이상 1미만 λ²”μœ„μ—μ„œ μž„μ˜μ˜ μ‹€μˆ˜λ₯Ό 생성
0이상 1미만 λ²”μœ„λ₯Ό λ°±λΆ„μœ¨λ‘œ ν™˜μ‚°ν•˜λ©΄ 0%이상 100%미만이기 λ•Œλ¬Έμ— ν™•λ₯ μ„ μ²˜λ¦¬ν•  λ•Œλ„ μ‚¬μš©
choice(list) μ „λ‹¬λœ μ‹œν€€μŠ€ μžλ£Œν˜•μ— μ†ν•œ μš”μ†Œ μ€‘μ—μ„œ ν•˜λ‚˜λ₯Ό μž„μ˜λ‘œ λ°˜ν™˜
sample(list, k=<숫자>) μ „λ‹¬λœ μ‹œν€€μŠ€ μžλ£Œν˜•μ— μ†ν•œ μš”μ†Œ 쀑 μ§€μ •λœ 개수의 μš”μ†Œλ₯Ό μž„μ˜λ‘œ λ°˜ν™˜
λ°˜ν™˜ κ²°κ³ΌλŠ” 리슀트 list μžλ£Œν˜•μ΄λ©° 쀑볡없이 μž„μ˜μ˜ μš”μ†Œκ°€ 선택
shuffle(list) μ „λ‹¬λœ μ‹œν€€μŠ€ μžλ£Œν˜•μ— μ†ν•œ μš”μ†Œμ˜ μˆœμ„œλ₯Ό μž„μ˜λ‘œ μ‘°μ •ν•˜μ—¬ λ‹€μ‹œ μž¬λ°°μΉ˜ν•˜λŠ” ν•¨μˆ˜
ν˜ΈμΆœν•˜λ©΄ μ‹€μ œ μ „λ‹¬λœ μ‹œν€€μŠ€ μžλ£Œν˜•μ˜ μˆœμ„œκ°€ 재배치

 

import random

# 1) randint() ν•¨μˆ˜
print(random.randint(1,10))  # 1이상 10μ΄ν•˜μ˜ μ •μˆ˜

# 2) randrange() ν•¨μˆ˜
print(random.randrange(10))  # 0이상 10미만의 μ •μˆ˜
print(random.randrange(1,10))  # 1이상 10미만의 μ •μˆ˜
print(random.randrange(1,10,2))  # 1이상 10미만의 ν™€μˆ˜

# 3) random() ν•¨μˆ˜
print(random.random())  # 0.1859815803780659

# 50% ν™•λ₯ λ‘œ 'μ•ˆλ…•ν•˜μ„Έμš”' 좜λ ₯
if random.random() < 0.5:
    print('μ•ˆλ…•ν•˜μ„Έμš”')

rand = random.randint(1,2)
print(rand)
if rand == 1:
    print('μ•ˆλ…•ν•˜μ„Έμš”')

# 4) choice() ν•¨μˆ˜
seasons = ['spring', 'summer', 'fall', 'winter']
print(random.choice(seasons))  # fall

idx = random.randint(0, len(seasons) - 1)
print(seasons[idx])

# 5) sample() ν•¨μˆ˜
print(random.sample(range(1, 46), 6))  # [36, 4, 14, 35, 12, 16]

seasons = ['spring', 'summer', 'fall', 'winter']
print(random.sample(seasons, 3))
seasons = ['summer', 'summer', 'summer', 'winter']
print(random.sample(seasons, 3))

# 6) shuffle() ν•¨μˆ˜
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)  # [4, 2, 3, 1, 5]

 


 

4. sys λͺ¨λ“ˆ

πŸ“  μ‹œμŠ€ν…œκ³Ό κ΄€λ ¨λœ 정보λ₯Ό 가지고 μžˆλŠ” λͺ¨λ“ˆ

πŸ“  λͺ…λ Ή λ§€κ°œλ³€μˆ˜λ₯Ό 받을 λ•Œ 많이 μ‚¬μš©

import sys

# λͺ…λ Ή λ§€κ°œλ³€μˆ˜ 좜λ ₯
print(sys.argv)  # ['/Users/Desktop/pycharm/pythonProject/book/1.py']
print("----")

# 컴퓨터 ν™˜κ²½κ³Ό κ΄€λ ¨λœ 정보 좜λ ₯
print("copyright:", sys.copyright)  
print("----")
print("version:", sys.version)
'''
copyright: Copyright (c) 2001-2023 Python Software Foundation.
All Rights Reserved.
... μƒλž΅ ...
----
version: 3.10.13 (main, Sep 11 2023, 08:16:02) [Clang 14.0.6 ]
'''

# ν”„λ‘œκ·Έλž¨ κ°•μ œ μ’…λ£Œ
sys.exit()

 


 

5. os λͺ¨λ“ˆ

πŸ“  μš΄μ˜μ²΄μ œμ™€ κ΄€λ ¨λœ κΈ°λŠ₯을 가진 λͺ¨λ“ˆ

import os

# κΈ°λ³Έ 정보 좜λ ₯
print("ν˜„μž¬ 운영체제:", os.name)
print("ν˜„μž¬ 폴더:", os.getcwd())
print("ν˜„μž¬ 폴더 λ‚΄λΆ€μ˜ μš”μ†Œ:", os.listdir())
'''
ν˜„μž¬ 운영체제: posix
ν˜„μž¬ 폴더: /Users/Desktop/pycharm/pythonProject/book
ν˜„μž¬ 폴더 λ‚΄λΆ€μ˜ μš”μ†Œ: ['1.py']
'''
# 폴더 λ§Œλ“€κ³  제거(폴더가 λΉ„μ–΄μžˆμ„ λ•Œλ§Œ κ°€λŠ₯)
os.mkdir("hello")
os.rmdir("hello")

# 파일 μƒμ„±ν•˜κ³  파일 이름 λ³€κ²½
with open("original.txt", "w") as file:
    file.write("hello")
os.rename("original.txt", "new.txt")

# 파일 제거
os.remove("new.txt")

# μ‹œμŠ€ν…œ λͺ…λ Ήμ–΄ μ‹€ν–‰
os.system("dir")

 


 

6. datetime λͺ¨λ“ˆ

πŸ“  λ‚ μ§œμ™€ μ‹œκ°„ 데이터λ₯Ό μ²˜λ¦¬ν•  λ•Œ μ‚¬μš©

λ³€μˆ˜ λ˜λŠ” ν•¨μˆ˜ μ„€λͺ…
now() μ‹œμŠ€ν…œμ˜ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜
date() νŠΉμ • λ‚ μ§œλ₯Ό λ°˜ν™˜
time() νŠΉμ • μ‹œκ°„μ„ λ°˜ν™˜
λ‚ μ§œ/μ‹œκ°„ κ΄€λ ¨ ν•„λ“œκ°’ νŠΉμ • λ‚ μ§œμ— μ›ν•˜λŠ” λ°μ΄ν„°λ§Œ μΆ”μΆœν•˜κ³ μž ν• λ•Œ 이용
timedelta() λ‚ μ§œ / μ‹œκ°„ λ°μ΄ν„°μ˜ 연산을 μœ„ν•˜μ—¬ μ‚¬μš©
total_seconds() μ–΄λ–€ 기간에 ν¬ν•¨λœ 총 μ‹œκ°„μ˜ 초 seconds 둜 λ°˜ν™˜

 

import datetime

# 1) now() λ©”μ†Œλ“œ
present = datetime.datetime.now()
print(present)

# 2) date() ν•¨μˆ˜
birthday = datetime.date(2014, 8, 25)
print(birthday)  # 2014-08-25

# 3) time() ν•¨μˆ˜
wake = datetime.time(10, 48, 0)
print(wake)  # 10:48:00

# 4) λ‚ μ§œ / μ‹œκ°„ κ΄€λ ¨ ν•„λ“œκ°’
today = datetime.datetime.now()
print(today.year)  # 년도
print(today.month)  # μ›”
print(today.day)  # 일
print(today.hour)  # μ‹œ
print(today.minute)  # λΆ„
print(today.second)  # 초

# 5) timedelta() ν•¨μˆ˜
# 1μ£Ό : timedelta(weeks=1)
# 1일 : timedelta(days=1)
# 1μ‹œκ°„ : timedelta(hours=1)
# 1λΆ„ : timedelta(minutes=1)
# 1초 : timedelta(seconds=1)

today = datetime.datetime.now()
yesterday = today - datetime.timedelta(days=1)  # μ–΄μ œ ꡬ함
tomorrow = today + datetime.timedelta(days=1)  # 내일 ꡬ함
print(yesterday)
print(tomorrow)

# 6) total_seconds() λ©”μ†Œλ“œ
date1 = datetime.date(2020, 8, 25)
date2 = datetime.date(2020, 8, 26)
print(date2 - date1)  # 1 day, 0:00:00
print((date2 - date1).total_seconds())  # 86400.0 = 60초 * 60λΆ„ * 24μ‹œκ°„

 


 

7. time λͺ¨λ“ˆ

πŸ“  μ‹œκ°„κ³Ό κ΄€λ ¨λœ κΈ°λŠ₯ 처리

λ³€μˆ˜ λ˜λŠ” ν•¨μˆ˜ μ„€λͺ…
time() 1970λ…„ 1μ›” 1일 0μ‹œ 0λΆ„ 0초 λΆ€ν„° ν˜„μž¬κΉŒμ§€ 경과된 μ‹œκ°„ timestamp을 λ°˜ν™˜
μ†Œμˆ˜μ  μ΄ν•˜λŠ” 마이크둜 초λ₯Ό 의미
ctime() 인수둜 μ „λ‹¬λœ μ‹œκ°„ timestamp을 ν˜•μ‹μ— κ°–μΆ° λ°˜ν™˜
strftime() 인수둜 μ „λ‹¬λœ λ‚ μ§œμ™€ μ§€μ‹œμžλ₯Ό μ΄μš©ν•˜μ—¬ ν˜•μ‹μ„ κ°–μΆ˜ λ‚ μ§œ 데이터가 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜
sleep() 인수둜 μ „λ‹¬λœ 초 second 만큼 μ‹œμŠ€ν…œμ„ μΌμ‹œ 정지

 

import time

# 1) time() ν•¨μˆ˜
print(time.time())  # 1645240996.2733545

# 2) ctime() ν•¨μˆ˜
print(time.ctime(time.time()))  # Sat Feb 19 12:23:16 2022

# 3) strftime() ν•¨μˆ˜
# λ…„ : %y : 2자리 λ‚ μ§œλ‘œ ν‘œμ‹œ
# λ…„ : %Y : 4자리 λ‚ μ§œλ‘œ ν‘œμ‹œ
# μ›” : %m : 2자리 숫자둜 ν‘œμ‹œ (01 ~ 12)
# μ›” : %b : 3자리 영문으둜 ν‘œμ‹œ (Jan ~ Dec)
# μ›” : %B : 전체 영문으둜 ν‘œμ‹œ (January ~ December)
# 일 : %d : 2자리 숫자둜 ν‘œμ‹œ (01 ~ 31)
# μš”μΌ : %a : 3자리 영문으둜 ν‘œμ‹œ (Sun ~ Sat)
# μš”μΌ : %A : 전체 영문으둜 ν‘œμ‹œ (Sunday ~ Saturdy)
# μ‹œ : %l : 12μ‹œκ°„μ œλ‘œ ν‘œμ‹œ (01 ~ 12)
# μ‹œ : %H : 24μ‹œκ°„μ œλ‘œ ν‘œμ‹œ (00 ~ 23)
# λΆ„ : %M : 2μ‹œκ°„μ œλ‘œ ν‘œμ‹œ (00 ~ 59)
# 초 : %S : 2μ‹œκ°„μ œλ‘œ ν‘œμ‹œ (00 ~ 59)
# μ˜€μ „ / μ˜€ν›„ : %p : AM λ˜λŠ” PM
print(time.strftime('%Y-%m-%d %H:%M:%S'))

# 4) sleep() ν•¨μˆ˜
time.sleep(1)

 


 

8.  urllib λͺ¨λ“ˆ

πŸ“  URL을 λ‹€λ£¨λŠ” 라이브러리

πŸ“  URL : Uniform Rssource Locator, λ„€νŠΈμ›Œν¬μ˜ μžμ›μ΄ 어디에 μœ„μΉ˜ν•˜λŠ”μ§€ 확인할 λ•Œ μ‚¬μš©ν•˜λŠ” 것

       β–ΆοΈ  μ›Ή λΈŒλΌμš°μ €μ˜ μ£Όμ†Œμ°½μ— μž…λ ₯ν•˜λŠ” μ£Όμ†Œ

from urllib import request

# urlopen() ν•¨μˆ˜λ‘œ ꡬ글 λ©”μΈνŽ˜μ΄μ§€λ₯Ό μ½μŠ΅λ‹ˆλ‹€
target = request.urlopen("https://google.com")
output = target.read()

# 좜λ ₯ν•©λ‹ˆλ‹€
print(output)

'''
b'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" 
lang="ko"><head><meta content="text/html; charset=UTF-8" 
... μƒλž΅ ...
'''

 

 

 

 

 

[ λ‚΄μš© μ°Έκ³  : IT 학원 κ°•μ˜ 및 μ±… '혼자 κ³΅λΆ€ν•˜λŠ” 파이썬' ]

+ Recent posts