개발자 미니민의 개발스터디

[파이썬] 모듈

by mini_min

🖋️ 모듈 만들기

: 모듈이란 파이썬 코드를 논리적으로 묶어서 관리하고 사용할 수 있도록 하는 것이다.

보통 하나의 파이썬이 하나의 모듈이 된다.

모듈 안에는 함수, 클래스, 변수 들이 정의 될 수 있으며 실행 코드를 포함할 수도 있다.

 

✨ 모듈의 장점

- 단순화

- 협업

- 중복 방지

- namespace 분리

 

if__name__  = "__main__"  은 함수의 선언, 시작을 의미한다.

 

✨ 모듈의 위치

: 파이썬에서 모듈을 import 하면 그 모듈을 찾기 위해 다음의 경로를 순서대로 검색

1. 현재 디렉토리

2. 환경변수 PYTHONPATH 에 지정된 경로

3. Python이 설치된 경로 및 그 밑의 라이브러리 경로 

 

✨ 모듈 import

모듈을 사용하기 위해서 모듈을 import 하여 사용하며, import 문은 하나 혹은 복수의 모듈을 불러 올 수 있다. 

from ... import ... 문은 하나의 모듈 안에 여러 함수가 존재할 때 하나의 함수만 불러오기 위해 사용하는 표현이다.

 

# 모듈 만들기
def add(a, b):
    return a+b

def sub(a, b):
    return a-b

if __name__ == "__main__":
    print(add(10,5))
    print(sub(10,5))
#모듈 - 포함해야 사용가능 import
import math
print(math.pi)

#별명지정 가능
import math as m
print(m.pi)

#factorial 함수만 import
from math import factorial
print(factorial(10))

#여러 함수 import
from math import (factorial, acos)
print(factorial(10), acos(1))

# 모든 함수 import
from math import *
print(sqrt(5), fabs(-12.5))
import calc

# 사용자가 만든 모듈 불러오기 
a = calc.add(13,7)
print(a)

 

 

🖋️ Datetime 모듈

#datetime.date : 년월일 정보를 담고 있는 객체
#datetime.datetime : 날짜와 시간 정보를 담고 있는 객체
#datetime.time : 시간 정보를 담고 있는 객체
#datetime.timedelta : 두날짜 또는 시간의 차이를 나타내는 객체
# 시스템 날짜
d = dt.date.today()
print(d)
print(d.year, d.month, d.day) # 년, 월, 일 

print(d.weekday()) # 월요일:0, 일요일:6
print("--" * 80)

# 날짜 설정
d = dt.date(2022, 12, 31)
print(d)

#d = dt.date(2022, 12, 32) # 에러! 

#문자열을 날짜로
d = dt.date.fromisoformat('2023-01-30') #yyyy-mm-dd 형식
print(d)
d = d.replace(day=20) # 년월일 정보 변경
print(d)
print("-" * 80)

d = dt.date(2023,1,31)
s = d.strftime("%Y/%m/%d") # 문자열로 반환
# %Y : 연도전체, %y : 연도뒤2자리, %m : 월
# %B : locale 월표현(전체), %b : locale 월표현(축약)
# %d : 일, %j : 연중일
# %H : 시(24시간제), %I(12시간제), %p: Locale 오전, 오후
# %M : 분
# %S : 초
# %f : 마이크로초
# %w : 요일(0:일요일, 6:토요일), %A:locale 요일 전체, %a:locale 요일 축약

print(s)

s = dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(s)
print("-" * 80)

d1 = dt.datetime(2023,1,1,0,0,0,0)
d2 = dt.datetime.now()

d3 = d1 - d2
print(d3)

d4 = d2 + dt.timedelta(days=5) # 5일 더함
print(d4)

 

: math 모듈

import math

print(math.pi)
print(math.e)

print(math.ceil(5.1)) # 올림 6
print(math.floor(3.789)) #크지 않는 가장 가까운 정수 3
print(math.trunc(-3.14)) # 절삭 -3
print(math.floor(-3.14))  #-4

print(math.fabs(-3.14)) #절대값 3
print(math.factorial(5)) # 팩토리얼 
print(math.gcd(6, 8)) #최대공약수
print(math.modf(3.14)) #정수와 소수 분리?
print(math.pow(3,2)) #x의 y승
print(math.sqrt(25)) #제곱근

 

: path 확인, 현재 작업 경로, os 명령어 

import os

# path 확인
s = os.environ["PATH"]
print(s)

# 현재 경로
s = os.getcwd()
print("작업경로 : " + s)

# os 명령어
os.system("dir")

# 운영체제 시스템 명령어 실행 결과 반환
r = os.popen('python --version')
s = r.read()
print(s)

 

: random 모듈

import random as rd

print(rd.random())  # 0.0 <= x < 1
print(rd.uniform(2.5, 10.0)) # 2.5 <= x <= 10.0
print(rd.randrange(10)) # 0 <= x < 10
print(rd.randrange(0,101,2)) # 0 <= x < 101, 2간격 랜덤
print(rd.randint(1,10)) @ 1 <= x <= 10

 

: 로또 만들기

set() 의 경우 동일한 데이터가 하나만 들어가기 때문에 for 문을 돌려서 하나씩 추가해주면 된다.

import random as rd

# lotto 만들기 : 1~ 45 까지 6개, 정렬해서 출력하기 
a = set() # 빈 set() : set은 동일한 데이터가 하나만 들어가서 
            # 이럴 때는 set을 사용한다. 
for  i in range(6):
    a.add(rd.randrange(1, 46))
    
a = list(a)
a.sort()
print(a)

 

 

 

'Python' 카테고리의 다른 글

[파이썬] 파일 처리  (1) 2022.12.25
[파이썬] 예외  (0) 2022.12.25
[파이썬] 클래스 다중상속, 추상 메서드  (1) 2022.12.25
[파이썬] 클래스 2  (0) 2022.12.25
[파이썬] 클래스  (0) 2022.12.18

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기