###Python

##모듈
: 함수나 변수 또는 클래스를 모아놓은 파일 (자바의 라이브러리 개념)
: 파이썬에서는 개별 소스 파일을 일컫는 말 ---> 파이썬 프로그램으로 작성된 파일이나 C, Fortran 등으로 만든 파이썬 확장파일도 모듈이 될 수 있음

#종류
1 표준 모듈: 파이썬 언어 패키지 안에 기본적으로 포함된 모듈 ex. math, string
2 사용자 생성 모듈: 프로그래머가 직접 작성한 모듈
3 서드 파티(3rd party) 모듈: 다른 프로그래머 또는 업체에서 제공한 모듈

##내장함수
: 파이썬의 표준모듈에 내장되어 있는 함수 --- import 구문 없이 사용할 수 있다
ex. input, print, type, int, str, range, max, min .....

##표준 내장 모듈
: 파이썬의 표준모듈에 내장되어 있는 함수 --- import 구문을 사용해 사용할 수 있다
ex. sys, pickle, os, shutil, glob, tempfile, time, calendar, random, webbrowser....

ex) math 모듈 --- 표준 내장 모듈
1. import math : math 모듈 안의 모든 변수와 함수를 import 한다는 의미
import math      # ★ import 필수

#원주율(pi)
print(math.pi)      # 3.141592653589793
#2^3 
print(math.pow(2,3))       # 8.0
#팩토리얼
print(math.factorial(3))        # 6
#ceil() : 올림
print(math.ceil(3.1))         # 4
#floor() : 내림
print(math.floor(3.9))         # 3
#sqrt() : 제곱근
print(math.sqrt(5))           # 2.23606797749979 (=√5)


2. from math import factorial : math 모듈 안의 factorial 함수만 import 한다는 의미
from math import factorial

#팩토리얼   ---> math 모듈의 factorial 함수만 import하는 경우, 앞의 math를 생략할 수 있음!
print(factorial(3))       # 6  


# sys 모듈
1 sys.path : 파이썬 모듈이 저장되어있는 위치를 구해줌
2 sys.exit(): 강제 스크립트 종료

# calendar 모듈
1 calendar.calendar(2022) : 해당 연도의 달력을 리턴
2 calendar.prcal(2022) : 해당 연도의 달력을 출력        --- print 쓰면 안 됨 얘 자체가 출력까지 포함된 함수이기 때문에
3 calendar.prmonth(2022,6) : 해당 연도 해당 월에 대한 달력을 출력      --- 얘도 print 쓰지 말 것
4 calendar.weekday(2022,6,8) : 해당 날짜의 요일을 리턴 : (월(0) ~ 일(6))
ex.
weekday = calendar.weekday(2020, 11, 24)   # 1 리턴
week = ['월','화','수','목','금','토','일']
print(week[weekday],'요일')       # 화 요일

# random 모듈
1 random.random() : 0.0 ~ 1.0 사이 난수 발생
2 random.randint(1,45) : 1 ~ 45 사이의 난수 발생
3 random.choice(list) : list 항목 중 1개를 랜덤 추출

 

# time 모듈
1 time.time() : UTC를 이용해 현재 시간을 실수 형태로 리턴 --- 1970.01.01.0.0.0를 기준으로 지난 시간을 초 단위로 리턴
2 time.localtime(time.time()) : time()에 의해 반환된 값을 이용해 연월일시분초 형태로 변환해주는 함수
3 time.asctime(time.localtime(time.time())) : localtime()에 의해 반환된 튜플 형태 값을 인수로 받아 날짜와 시간을 알아보기 쉬운 형태로 리턴하는 함수
4 time.ctime() : 현재 시간을 간단하게 리턴하는 함수
5 형식 지정 함수
print(time.strftime('%x', time.localtime(time.time())))      # 05/31/22
print(time.strftime('%c', time.localtime(time.time())))      # Tue May 31 10:16:04 2022
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))      # 2022-05-31 10:16:04
6 time.sleep() : 일정한 시간 간격을 두고 실행하는 함수  ex. time.sleep(1) : 1초 간격으로 실행

# webbrowser 모듈
 : 자신의 시스템에서 사용하는 기본 웹 브라우저가 자동으로 실행되도록 하는 모듈
1 webbrowser.open("http://google.com")

2 webbrowser.open_new("http://google.com") : 새로운 창으로 해당 주소가 열리게 하는 함수


## 사용자 정의 모듈
ex1
* mymath.py    # 사용자 정의 모듈 생성
mypi = 3.14

def area(r):
    return mypi * r * r

* test.py    # mymath 모듈 사용
import mymath
# from mymath import *     # mymath 모듈의 모든 변수와 함수를 import 하겠다 (사용은 ㄴㄴ)
 ---> 단, 얘를 쓰면 모든 변수, 함수 앞에 mymath를 붙여줄 필요가 없어지긴 함
# from mymath import mypi    # mypi 변수만 import 하겠다 -> area 함수 사용 불가
# from mymath import area    # area 함수만 import 하겠다 -> mypi 변수 사용 불가

# mymath의 변수를 사용
print(mymath.mypi)          # 3.14
# mymath의 함수를 사용
print(mymath.area(5))       # 78.5

# 별칭
import calculator as c
 ----> 별칭이 부여된 후로는 별칭만 사용할 수 있음!
#print(calculator.plus(10,5))     # 오류!
print(c.plus(10,5))      # 정상 출력!


## 외부모듈
# 설치 (콘솔)
pip install numpy
pip install pandas
pip install tensorflow
pip list : 설치된 외부모듈 목록 확인

# 설치 (파이참)
file - settings - Python Interpreter - 좌측상단 + 클릭 - 검색 & 설치(Install package) - ok


## 패키지
: 모듈을 모아놓는 디렉토리
: 파이썬의 패키지가 되기 위해서 -----> 패키지 안에 __init__.py 파일이 존재해야 함

## 패키지 안의 모듈 불러오기
0. my_package 디렉토리 생성 - calculator.py 모듈 생성

1 from 패키지명 import 모듈파일명
from my_package import calculator
print(calculator.plus(10,5)) 

2 import 패키지명.모듈명
import my_package.calculator
print(my_package.calculator.plus(10, 5))

3. import 패키지명.모듈명 as 별칭
import my_package.calculator as cal
print(cal.plus(10, 5))


ex) matplotlib 모듈 : 그래프 만들어주는 모듈

import matplotlib.pyplot as plt     #별칭 사용

plt.plot([1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1])      # y축 값
plt.ylabel('some numbers')      # y축 라벨
plt.show()     # 그래프 보여주세요

 

'수업 > 정리' 카테고리의 다른 글

빅데이터 +++  (0) 2022.06.07
220603 Python -11  (0) 2022.06.02
220530 Python -9 함수, lambda, map, filter  (0) 2022.05.30
220527 Python -8 딕셔너리  (0) 2022.05.30
220526 docker -6 tomcat  (0) 2022.05.26

+ Recent posts