[Python] 11κ° - λͺ¨λ
1. λͺ¨λμ μ΄ν΄
(1) λͺ¨λμ κ°λ
- ν΄λμ€, ν¨μ, λ³μμ μ§ν©μ μλ―Ένλ€.
- νμ΄μ¬μμ νμ΄μ¬ μ½λ(.py νμΌ)λ₯Ό νλμ νμΌ λ¨μλ‘ μ μ₯ν κ²μ λͺ¨λμ΄λΌ ν¨.
- μ¦, νλμ νμΌμ λ³μ, ν¨μ, ν΄λμ€ λ±μ λͺ¨μλκ³ μ΄κ±Έ λ€λ₯Έ νμ΄μ¬ νμΌμμ import(λΆλ¬μ€κΈ°)ν΄μ μ΄μ©μ νλ€.
(2) λͺ¨λμ μν
- νμ΄μ¬ νμΌλ‘ λλ μ μ μ§λ³΄μμ±κ³Ό κ°λ μ±μ μ’κ² λ§λ€ μ μμ. κ΄λ¦¬νκΈ°κ° μ¬μ
- λν, λΌμ΄λΈλ¬λ¦¬μ νλ μμν¬μμΌλ‘ λΆλ¬μμ μ΄μ©μ ν μλ μμ. ( νΉν νμ΄μ¬μ λΌμ΄λΈλ¬λ¦¬κ° λ§μ )
(3) λͺ¨λ, ν¨ν€μ§, λΌμ΄λΈλ¬λ¦¬ μ°¨μ΄
- λͺ¨λ : ν΄λμ€, ν¨μ, μμ(λ³μ)μ μ§ν©
- ν¨ν€μ§ : νμ ν¨ν€μ§ λ° λͺ¨λμ μ§ν©
- λΌμ΄λΈλ¬λ¦¬ : ν¨ν€μ§ λ° λͺ¨λμ μ§ν©
(4) λͺ¨λ λ±λ‘ λ°©λ²
[1] κΈ°λ³Έ import λ¬Έ
import test
- κ°μ₯ ννκ² λ§μ΄ μ°μ΄λ λ°©μ
[2] λ³μΉ import λ¬Έ
import test as t # μ¬μ© μ t.ν¨μλͺ
λ°©μμΌλ‘ μ¬μ© κ°λ₯
- κΈ΄ λͺ¨λλͺ μ κ°λ κ²½μ° μ¬μ©νλ©΄ μ’μ
[3] from import
from test import add # test νμΌμ add() ν¨μλ§ import
- νΉμ ν¨μ λλ ν΄λμ€λ§ μν¬νΈλ₯Ό νλ λ°©μμ΄λ€.
(5) λͺ¨λμ λ±λ‘ νμΈ
[1] dir ν¨μ
- λ€μμ€νμ΄μ€μ λ±λ‘λμ΄ μλ λͺ¨λ μ΄λ¦λ€μ 리μ€νΈλ‘ λ°ν
import test
print(dir(test))
# test.py
def bin():
print("good")
- ν΄λΉ dirμ κ²°κ³Όλ₯Ό νλ¦°νΈλ‘ μ°μ΄λ³΄λ©΄, ν΄λΉ test.py λͺ¨λμ μλ ν¨μλ λ³μ λ±μ λ³Ό μ μλ€.
[2] help ν¨μ
- λνν λμλ§ μμ€ν νΈμΆ λλ ν΄λμ€λ λ©μλμ μ¬μ©λ°©λ²μ λ°ν ν΄μ£Όλ ν¨μ
import math
help(math) # help(object) λ°©μ -> κΈ°μ¬ν΄μ ν΄λΉ ν¨μμ μ€λͺ
μ λ€μ μ μμ.
help() # λνν ν¬ν μμ€ν
-> μ€νμμΌμ μ§μ μ³μ μ°Ύμ μ μμ.
(6) λͺ¨λμ μ κ±°
- μ λͺ¨λμ ν¨μ, λ³μ λ±μ μ΄λ¦μ΄ κ²ΉμΉλ μ΄μ λ‘ μ΄μ λͺ¨λμ μ κ±°ν΄μΌ ν λ μ¬μ©μ νλ€.
[1] del ν€μλ
x = 10
del x
print(x) # NameError: name 'x' is not defined
- μμμ½λ μ²λΌ λ³μλ§ μμ κ° κ°λ₯νκ²μ΄ μλ ν¨μ λ± λ€μνκ² μμ κ° κ°λ₯νλ€.
- del ν€μλλ μ μλ λ³μλ κ°μ²΄λ₯Ό λ©λͺ¨λ¦¬μμ μμ λ²λ¦¬λ μν μ νλ€.
- μλΉμ€κ°μ del ν€μλλ μννκΈ° λλ¬Έμ μ μ¬μ©μ΄ λμ§λ μμ§λ§, ν μ€νΈμ μ¬μ©νκΈ°μλ μ ν©ν¨
2. μ μ©ν λͺ¨λ
(1) math λͺ¨λ
- μνμ κ³μ° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν μν ν¨μ λ° μμμ μ§ν© λͺ¨λμ΄λ€.
- C μΈμ΄ νμ€μ μ μλ μνμ κ³μΌ ν¨μλ₯Ό λ΄μ₯
- pi, eμ κ°μ μμλ₯Ό μ 곡ν΄μ£ΌκΈ°λ ν¨.
import math
# μ κ³±κ·Ό
print(math.sqrt(25)) # μΆλ ₯: 5.0
# κ±°λμ κ³± (2μ 3μ κ³±)
print(math.pow(2, 3)) # μΆλ ₯: 8.0
# λ°μ¬λ¦Ό κ΄λ ¨
print(math.floor(3.7)) # μΆλ ₯: 3 (λ΄λ¦Ό)
print(math.ceil(3.2)) # μΆλ ₯: 4 (μ¬λ¦Ό)
print(math.trunc(3.9)) # μΆλ ₯: 3 (μμμ μ κ±°)
# μΌκ°ν¨μ
print(math.sin(math.pi / 2)) # μΆλ ₯: 1.0
print(math.cos(0)) # μΆλ ₯: 1.0
# λ‘κ·Έ
print(math.log(100, 10)) # μΆλ ₯: 2.0 (λ°μ΄ 10μΈ λ‘κ·Έ)
# ν©ν 리μΌ
print(math.factorial(5)) # μΆλ ₯: 120
# μμ
print(math.pi) # μΆλ ₯: 3.141592...
print(math.e) # μΆλ ₯: 2.718281...
# κ°λ λ³ν
print(math.degrees(math.pi)) # μΆλ ₯: 180.0
print(math.radians(180)) # μΆλ ₯: 3.141592...
- μμμ²λΌ μνμ μΌλ‘ μ μ©νκ² μ°μ΄λ ν¨μμ μμλ€μ μ§ν©μ΄λ€.
(2) random λͺ¨λ
- λμ(random number) : νΉμ ν λ°°μ΄ μμλ κ·μΉμ μΈ μλ―Έκ° μλ, μμμ μλ₯Ό μλ―Ένλ€.
- λμ κ΄λ ¨λ μμ± κΈ°λ₯μ μ 곡νλ λͺ¨λμ random λͺ¨λμ΄λΌ νλ€.
[1] random λͺ¨λ λ©€λ²
# random λͺ¨λ μ£Όμ ν¨μ μ 리
import random
# 1. random.random()
# - 0.0 μ΄μ 1.0 λ―Έλ§μ μ€μλ₯Ό λ°ν
# μ: 0.345, 0.982 λ±
random.random()
# 2. random.randint(a, b)
# - a μ΄μ b μ΄νμ μ μλ₯Ό λ°ν (μμͺ½ λ ν¬ν¨)
# μ: random.randint(1, 5) β 1, 2, 3, 4, 5 μ€ νλ
random.randint(1, 5)
# 3. random.uniform(a, b)
# - a μ΄μ b μ΄νμ μ€μλ₯Ό λ°ν
# μ: random.uniform(1.0, 5.0) β 1.234 λ±
random.uniform(1.0, 5.0)
# 4. random.choice(seq)
# - μνμ€(리μ€νΈ, νν λ±)μμ 무μμλ‘ νλ μ ν
# μ: random.choice(['a', 'b', 'c']) β 'a' λλ 'b' λλ 'c'
random.choice(['a', 'b', 'c'])
# 5. random.choices(seq, k=n)
# - μνμ€μμ μ€λ³΅ νμ©νλ©° nκ° μ ν
# μ: random.choices([1, 2, 3], k=2) β [2, 2] λλ [1, 3] λ±
random.choices([1, 2, 3], k=2)
(3) time λͺ¨λ
- μν¬ν¬ μκ°μ μ»μ΄ λ€μν νμμΌλ‘ νμνλ κΈ°λ₯μ μ 곡ν¨.
- μν¬ν¬ μκ°μ΄λ, μ»΄ν¨ν° μμ€ν μμ μκ°μ νννκΈ° μν κΈ°μ€μ κ³Ό μΈ‘μ λ°©λ²μ μλ―Ένλ€.
- νΉμ κΈ°μ€ μμ (μν¬ν¬)λΆν° μΌλ§λ μκ°μ΄ νλ λμ§λ₯Ό "μ΄ λ¨μ"λ‘ λνλ΄λ μ«μλ₯Ό μλ―Ένλ€.
- μν¬ν¬ μκ°μ κΈ°μ€μ μ 1970λ 1μ 1μΌ 00μ 00λΆ 00μ΄ (UTC)μ΄λ€.
- μ°Έκ³ λ‘ μ λμ€ μμ€ν μ΄ 1970λ 1μ 1μΌμ κΈ°μ€μΌλ‘ μ€μ νκΈ° λλ¬Έμ. μ λμ€ μκ°μ΄λΌκ³ ν¨.
import time
# 1. νμ¬ μν¬ν¬ μκ° (1970λ
λΆν° μ§λ μ΄)
epoch_time = time.time()
print("π νμ¬ μν¬ν¬ μκ°:", epoch_time)
# 2. μν¬ν¬ μκ° β λ‘컬 μκ° (struct_time κ°μ²΄)
local_time = time.localtime(epoch_time)
print("π λ‘컬 μκ° (struct_time):", local_time)
# 3. λ‘컬 μκ° β 보기 μ’μ λ¬Έμμ΄
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("π ν¬λ§·λ μκ°:", formatted_time)
# 4. λ¬Έμμ΄ β struct_time (νμ±)
time_str = "2025-04-23 15:00:00"
parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print("π λ¬Έμμ΄ νμ±:", parsed_time)
# 5. struct_time β μν¬ν¬ μκ°
epoch_from_str = time.mktime(parsed_time)
print("π νμ±λ μκ°μ μν¬ν¬ κ°:", epoch_from_str)
# 6. 2μ΄ λκΈ°
print("β³ 2μ΄ λκΈ° μ€...")
time.sleep(2)
print("β
λκΈ° μλ£")