๋ฐ์ํ
๐ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Standard Libraries)
Python์ ๋ค์ํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ถ๊ฐ ์ค์น ์์ด๋ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ผ ์ ์ถ๋ ฅ, ๋คํธ์ํน, ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ ์ง์ ์๊ฐ ๊ด๋ฆฌ ๋ฑ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, import ํค์๋๋ฅผ ์ฌ์ฉํด ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. Python์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ๋ณต์กํ ์์ ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค๋ค. ๋ํ์ ์ธ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.
01. math: ์ํ ๊ด๋ จ ํจ์์ ์์๋ฅผ ์ ๊ณต.
import math
# ์ ๊ณฑ๊ทผ ๊ณ์ฐ
print(math.sqrt(16)) # Output: 4.0
# ์์ฃผ์จ (pi) ์์ ์ฌ์ฉ
print(math.pi) # Output: 3.141592653589793
# ์ผ๊ฐ ํจ์ ๊ณ์ฐ
angle = math.radians(90) # ๊ฐ๋๋ฅผ ๋ผ๋์์ผ๋ก ๋ณํ
print(math.sin(angle)) # Output: 1.0
02. datetime: ๋ ์ง์ ์๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ชจ๋.
import datetime
# ํ์ฌ ๋ ์ง์ ์๊ฐ ์ถ๋ ฅ
now = datetime.datetime.now()
print(now) # ์: 2024-11-02 22:12:01.519150
# ํน์ ๋ ์ง ์์ฑ
birthday = datetime.datetime(2000, 1, 1)
print(birthday) # Output: 2000-01-01 00:00:00
# ๋ ์ง ์ฐจ์ด ๊ณ์ฐ
today = datetime.date.today()
new_year = datetime.date(today.year + 1, 1, 1)
days_until_new_year = (new_year - today).days
print(f"New Year๊น์ง ๋จ์ ์ผ์: {days_until_new_year}์ผ")
03. random: ๋์ ์์ฑ ๋ฐ ๋ฌด์์ ์ ํ ๊ธฐ๋ฅ ์ ๊ณต.
import random
# 1์์ 10 ์ฌ์ด์ ์์์ ์ ์ ์์ฑ
print(random.randint(1, 10)) # Output: 1์์ 10 ์ฌ์ด์ ๋ฌด์์ ์ ์
# 0๊ณผ 1 ์ฌ์ด์ ์์์ ๋ถ๋ ์์์ ์์ฑ
print(random.random()) # Output: 0.0 <= N < 1.0
# ๋ฆฌ์คํธ์์ ๋ฌด์์๋ก ํ๋ ์ ํ
choices = ["apple", "banana", "cherry"]
print(random.choice(choices)) # Output: choices ์ค ํ๋
# ๋ฆฌ์คํธ๋ฅผ ๋ฌด์์๋ก ์๊ธฐ
deck = [1, 2, 3, 4, 5]
random.shuffle(deck)
print(deck) # Output: ์: [3, 1, 5, 2, 4]
# 1์์ 100 ์ฌ์ด์ ์์์ ๋ถ๋ ์์์ ์์ฑ
print(random.uniform(1, 100)) # Output: 1.0 <= N <= 100.0
- random.randint(a, b): a์ b ์ฌ์ด์ ์ ์ ๋์๋ฅผ ๋ฐํ.
- random.random(): 0๊ณผ 1 ์ฌ์ด์ ๋ถ๋ ์์์ ๋์๋ฅผ ๋ฐํ.
- random.choice(seq): ์ํ์ค์์ ๋ฌด์์ ์์๋ฅผ ์ ํ.
- random.shuffle(seq): ์ํ์ค์ ์์๋ฅผ ๋ฌด์์๋ก ์์.
- random.uniform(a, b): a์ b ์ฌ์ด์ ๋ถ๋ ์์์ ๋์๋ฅผ ๋ฐํ.
์ด์ ๊ฐ์ด random ๋ชจ๋์ ํตํด ๋ค์ํ ๋ฌด์์ ์์ ์ ์ฝ๊ฒ ์ํํ ์ ์๋ค.
04. glob: ํ์ผ ๊ฒฝ๋ก ํจํด ๋งค์นญ์ ํตํด ํน์ ํ์ผ ๋ชฉ๋ก์ ๊ฒ์ํ๋ ๋ฐ ์ ์ฉํ ๋ชจ๋.
import glob
files = glob.glob('./*.py') # ํ์ฌ ๋๋ ํ ๋ฆฌ์์ ๋ชจ๋ .py ํ์ผ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ
print(files) # ํฐ๋ฏธ๋์ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ .py ํ์ผ์ด ๋ฆฌ์คํธ๋ก ์ถ๋ ฅ๋จ
05. json: JSON ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๊ฑฐ๋ JSON ํ์ผ์ ์ฝ๊ณ ์ฐ๊ธฐ ์ํ ๋ชจ๋. Python์์ ๋ฐ์ดํฐ๋ฅผ JSON ํ์ผ๋ก ์ ์ฅ
import json
aespa = {'karina': 24, 'winter': 23, 'ningning': 21, 'giselle': 23}
with open("./aespa.json", "wt") as f:
json.dump(aespa, f)
- ํ์ผ ์ด๊ธฐ: open("./aespa.json", "wt")๋ก aespa.json ํ์ผ์ ์ฐ๊ธฐ ๋ชจ๋๋ก ์ฝ๋๋ค.
- ํ์ผ ๊ฐ์ฒด ์ฐธ์กฐ: f ๋๋ aespa_file ๋ณ์์ ํ์ผ ๊ฐ์ฒด๋ฅผ ํ ๋นํฉ๋๋ค.
- JSON ๋ฐ์ดํฐ ์ ์ฅ: json.dump(aespa, f)๋ฅผ ํตํด aespa ๋์
๋๋ฆฌ๋ฅผ JSON ํ์์ผ๋ก ํ์ผ์ ์ ์ฅํฉ๋๋ค.
* wt ๋ชจ๋ : wt๋ ํ์ผ์ ์ด ๋ ์ฌ์ฉํ๋ ๋ชจ๋. wt๋ฅผ ์ฌ์ฉํ๋ฉด JSON ํ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ํ์ผ์ ์์ฑํ ์ ์๋ค.
w:์ฐ๊ธฐ ๋ชจ๋(write)๋ก, ๊ธฐ์กด ํ์ผ์ด ์๋ค๋ฉด ๋ด์ฉ์ ๋ฎ์ด์ฐ๊ณ , ํ์ผ์ด ์์ผ๋ฉด ์๋ก ์์ฑํฉ๋๋ค.
t:ํ ์คํธ ๋ชจ๋(text). ์ด ๋ชจ๋๋ ์๋ต ๊ฐ๋ฅํ๋ฏ๋ก ๋ณดํต w๋ง ์จ๋ ๋์ผํ๊ฒ ์๋ํ๋ค.
* f ํ์ผ ๊ฐ์ฒด : f๋ ํ์ผ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๋ช ์ผ๋ก, open() ํจ์๋ฅผ ํตํด ๋ฐํ๋ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค. ํ์ผ ๊ฐ์ฒด๋ฅผ ํตํด ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฑฐ๋ ์ฝ์ ์ ์๋ค.๊ด๋ก์ ์ผ๋ก ํ์ผ ์์ ์์๋ f๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ํฉ์ ๋ง๋ ๋ณ์๋ช (aespa_file ๋ฑ)์ ์ฌ์ฉํ๋ฉด ๋ ๋ช ํํ ์ ์๋ค.
* : with ๊ตฌ๋ฌธ ๋๋ถ์ ๋ธ๋ก์ด ๋๋๋ฉด ํ์ผ์ด ์๋์ผ๋ก ๋ซํ๋ค.
06. os: ๋ชจ๋์ ํ์ผ ์์คํ ์์ , ํ๊ฒฝ ๋ณ์ ์ ๊ทผ ๋ฑ ์ด์์ฒด์ ์ ์ํธ์์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต .
import os
# ํ์ฌ ์์
๋๋ ํ ๋ฆฌ ํ์ธ
print(os.getcwd()) # ํ์ฌ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก ์ถ๋ ฅ
# ์๋ก์ด ๋๋ ํ ๋ฆฌ ์์ฑ
os.mkdir("test_directory")
# ํ์ผ ์กด์ฌ ์ฌ๋ถ ํ์ธ
print(os.path.exists("test_directory")) # Output: True
# ํ๊ฒฝ ๋ณ์ ์ ๊ทผ
home_directory = os.environ.get("HOME")
print(home_directory)
07. sys: Python ์ธํฐํ๋ฆฌํฐ์ ์ํธ์์ฉํ๋ ๊ธฐ๋ฅ ์ ๊ณต. ํ๋ก๊ทธ๋จ ์ข ๋ฃ ๋ฑ์ ๊ธฐ๋ฅ๋ ํฌํจ
import sys
# Python ๋ฒ์ ํ์ธ
print(sys.version)
# ๋ช
๋ น์ค ์ธ์ ํ์ธ
print(sys.argv) # ์: ['script_name.py', 'arg1', 'arg2']
# ํ๋ก๊ทธ๋จ ์ข
๋ฃ
try:
sys.exit("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.") # ํ๋ก๊ทธ๋จ ์ข
๋ฃ์ ํจ๊ป ๋ฉ์์ง ์ถ๋ ฅ
except SystemExit as e:
print(e)
๋ฐ์ํ
'๐ฉโ๐ป hello, world! > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ฌ ๊ธฐ์ด 10 - ๊ฐ์ ํ๊ฒฝ(virtual environment) (0) | 2024.11.03 |
---|---|
ํ์ด์ฌ ๊ธฐ์ด 09 - ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (External Libraries) (5) | 2024.11.03 |
ํ์ด์ฌ ๊ธฐ์ด 07 - ๋ด์ฅํจ์ (0) | 2024.11.02 |
ํ์ด์ฌ ๊ธฐ์ด 06 - ์์ธ ์ฒ๋ฆฌ (0) | 2024.11.02 |
ํ์ด์ฌ ๊ธฐ์ด 05 - ๋ชจ๋, ํจํค์ง (1) | 2024.11.01 |