본문 바로가기
공부기록/Python

6월 12일 (2) python - 모듈

by project100 2023. 6. 12.

모듈(Modul)과 패키지(Package)

모듈 : 각종 변수, 함수, 클래스를 담고 있는 파일

패키지 : 여러 모듈을 묶어 놓은 것

 

import 키워드 : 코드에 모듈을 포함시키는 명령

 

작성문법)

import 모듈

모듈.변수

모듈.함수() 

 

내장함수(모듈 import 필요없음)

input(), print()

 

# import math
# import math as m # 별칭
# math 모듈에서 pi 변수만 가져와서 사용
from math import pi

# as를 붙이지 않고 사용
# print(math.pi)
# print(math.e)
# print(math.ceil(3.14)) # 올림
# print(math.floor(3.5)) # 내림
# print(math.pow(3, 2)) # 제곱

# as를 붙이고 사용
# print(m.pi)

# from 사용
print(pi)

 

파이썬 수학 함수

 

math — Mathematical functions

This module provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex numbers; use the functions of the same name from the cmath module if...

docs.python.org

 

파이썬 표준 라이브러리(바이블) - 버전 살펴보기!

 

The Python Standard Library

While The Python Language Reference describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It...

docs.python.org

 

# from math import pi, e
# 전체 가져오기, 대신에 math 안 써도 됨
from math import *
import random as ran # 난수 생성

print(pi)
print(e)

# random() : 0~1미만의 수
print(ran.random())
# 1~9까지의 범위
print(ran.randrange(1, 10)) 
print(ran.randrange(1, 46))

num_list = list(range(10))
ran.shuffle(num_list)
print(num_list)

menu_list = ['짬뽕', '탕수육', '짜장', '양장피', '유산슬']
print(ran.choice(menu_list))

# 정수 난수 생성, 1 ~ 10 사이값 (10 포함)
print(ran.randint(1, 10))
# 실수 난수 생성, 0 ~ 1 사이값(1포함)
print(ran.uniform(0, 1))

# 로또 만들때 좋은 sample
# 시퀀스에서 중복되지 않은 지정된 개수 값 선택
print(ran.sample(range(1, 46), 6))

 

math, random, datetime

 

datetime 모듈

날짜와 시간 관련 모듈

주요 사용 클래스 

1) datetime.date : 년월일 정보를 담고 있는 객체

2) datetime.time : 시간 정보를 담고 있는 객체

3) datetime.datetime : 날짜와 시간을 모두 담고 있는 객체

4) datetime.timedelta : 두 날짜 또는 시간 간의 차이를 나타내는 객체

5) datetime.timezone : 시간대 적용 관련 객체

 

strftime 함수에서 사용하는 옵션 기호

%a : 요일 출력, 3자리 약자로 출력 (월 : Mon)

%A :  요일 출력, 월 - Monday

%w : 요일 번호 출력, 일요일 0, 토요일 6

%d : 날짜, 한자리 수 일 경우 앞에 0 출력

%b : 월 이름의 약자 출력, 1월 - Jan

%B : 월 이름 다 출력, 1월 - January

%m : 월을 숫자로 출력. 한 자리이 경우 앞에 0 출력

%y : 연도 출력. 2자리로 출력

%Y : 연도 출력. 4자로 출력

%H : 24시간 주기로 시 출력

%I : 12시간 주기로 시 출력

%M : 분 출력

%S : 초 출력

%p : 오전, 오후표시 

 

현재 날짜를 가져오는 함수 : date.today()

현재 날짜와 시간을 가져오는 함수 : datetime.now()

 

from datetime import date as d
from datetime import *

# 오늘 날짜 출력
print(d.today())

#td = d(2022,1,1)
td = d.today()
print(td.year)
print(td.month)
print(td.day)
print(td.weekday()) # 월요일 : 0, 일요일 : 6
print(d.isoformat(td)) # yyyy=MM-dd

print(td.strftime("%d/%m/%Y"))
print(td.strftime("%y/%m/%d %w"))
print(td.strftime("%y/%m/%d %A"))

# 현재 시간 출력
t = datetime.now()
print(t)
print(t.strftime("%y/%m/%d, %H:%M:%S"))

 

TypeError: descriptor 'strftime' for 'datetime.date' objects doesn't apply to a 'str' object

AttributeError: 'method_descriptor' object has no attribute 'now'