Python

[python] Module

SangRok Jung 2022. 9. 6. 23:11
반응형

Module


클래스, 함수, 변수와 같은 여러가지 코드를 하나로 모아놓은 파일

한번 제작후 여러번 사용이 가능하다.

다른 개발자가 만들어 놓은 파일을 가져와서 사용할 수 있다.

 

 

 

 

▶ Module내 함수 호출

import 모듈명
모듈명.함수명()

 

 

 

▶ Module내 특정 함수 사용

from 모듈명 import 함수명
함수명()

 

 

▶ Module의 단축명 지정

import 모듈명 as 단축명
단축명.함수명()

 

내장함수


print(), del(), type()과 같이 아무런 설정 없이 바로 사용할 수 있는 파이썬 자체에 내장되어 있는 함수.

 

 

 

 

 

 

모듈 불러오기


▷ great1을 호출하여 사용한다.

#great1.py

from great1 import hello3
from math import sqrt
#great4.py

import great1
import math

print(great1.hello1("이원준"))
print(math.sqrt(100))

import great1 as gr
import math as m

print(gr.hello2("이은혜"))
print(m.sqrt(100))

# 해당 함수만 가져온다.
from great1 import hello3
from math import sqrt
print(hello3("전혜리"))
print(sqrt(100))

# * : 그 안의 모든것을 가져온다.
from great1 import *
from math import *
print(hello2("이은혜"))
print(sqrt(100), sin(1))

# 이원준 님 안녕하세요.
# 10.0
# 이은혜 님 반갑습니다.
# 10.0
# 전혜리 님 만나서 반가워요.
# 10.0
# 이은혜 님 반갑습니다.
# 10.0 0.8414709848078965

 

 

▶ 모듈안의 클래스를 호출할 때

pi = 3.141592

class Math :
    def circle_area(self, r) :
        return pi * (r ** 2)

def add(a, b):
    return a+b

 

 

 

 

 

 

 

 

if __name__ == "__main__" 의  의미


직접 파일을 실행 했을 때 if문 다음 의 문장이 실행된다.

 

 

 

 

▷ 예시

아래와 같은 경우 md2 모듈을 실행 시킬 때 10~20의 소수만 출력되고 자연수를 입력하여 소수를 판별하지 않는다.

#md1

def isPrime(n):
    for i in range(2, n):
        if n % i == 0 :
            return False
        return True

if __name__ == "__main__" : 
    n = int(input("자연수 입력:"))
    if isPrime(n) : 
        print(f"{n}은(는) 소수임")
    else :
        print(f"{n}은(는) 소수가 아님")
#md2

import md1

print("10~20 사이의 소수 : ")
for i in range(10, 21) :
    if md1.isPrime(i) :
        print(i)

 

 

 

 

 

 

 

 

math Module


▶ math 주요 메서드

내장 함수명  기능
math.floor() 소수점 이하를 절삭함
math.ceil() 무조건 올림
math.factorial() 팩토리얼 값을 구함
math.sin() 사인 값을 구함(라디안 단위)
math.cos() 코사인 값을 구함(라디안 단위)
math.tan() 탄젠트 값을 구함(라디안 단위)
math.pow() 거듭제곱 값을 구함
math.log10() 밑이 10인 로그 값을 구함
math.pi 3.141592653589793 (모듈에서 정의된 상수임)

 

 

import math

pi = math.pi

print(math.sin(pi/2))
print(math.cos(pi))
print(math.tan(pi*2))
print(math.pow(2, 4))
print(math.sqrt(49))
print(math.log10(100))

# 1.0
# -1.0
# -2.4492935982947064e-16
# 16.0
# 7.0
# 2.0

 

 

 

 

 

 

 

 

 

random Module


▶ 메서드

내장 함수명 기능
random.random() 0.0 이상 1.0미만 실수(float)을 반환한다.
random.randrange(a, b)
random.randrange(a)
a이상 b미만의 정수(int)를 반환합니다.
0이상 b미만의 정수(int)를 반환합니다.
random.randint(a, b) a이상 b이하의 정수를 반환합니다.
random.choice(seq) seq의 데이터 중 무작위로 하나를 뽑아 반환합니다.
random.shuffle(seq)  seq의 데이터 순서를 무작위로 바꿔줍니다.
random.uniform(a, b) a이상 b이하의 실수(float)를 반환합니다.
random.sample(seq or set, N) seq에서 무작위로 Unique한 값 N개를 반환합니다.
N이 seq의 데이터 수보다 많을 경우 에러 발생.

 

import random

a = []
b = []
c = []
toss = ["가위", "바위", "보"]
fruit = ["사과", "바나나", "오렌지"]

for i in range(3) :
    a.append(random.random())
print(a)
# [0.6945609424805286, 0.21925246044656055, 0.2644268460571151]

while len(b) < 5 :
    num = random.randrange(1, 10) # 이상, 미만
    if num % 2 == 1 :
        b.append(num)
print(b)
# [9, 7, 5, 5, 1]


while len(c) < 5 :
    num = random.randint(1, 6) #정수형을 반환해준다 이상, 이하
    if num % 2 == 1 :
        c.append(num)
print(c)



for i in range(5) :
    print(random.choice(toss)) # 랜덤하게 선택해준다.



for i in range(3) :
    random.shuffle(fruit) # 리스트의 원본을 랜덤하게 섞는다.
    print(fruit)

 

 

 

▶ 주사위게임

import random

q = 'y'
count = 0
meWin = 0
meLose = 0
same = 0

while q == "y" :
    me = random.randrange(1, 7)
    cpu = random.randrange(1, 7)

    print(f"{count}번째 게임")
    count += 1

    if me > cpu :
        meWin += 1
        print(f"you = {me} : cpu = {cpu} 당신이 승리햇습니다. ")
    elif me < cpu :
        meLose += 1
        print(f"you = {me} : cpu = {cpu} 당신이 패배했습니다. ")
    else :
        same += 1
        print(f"you = {me} : cpu = {cpu} 무승부입니다. ")
        
    print(f"{meWin}승 {meLose}패 {same}무")
    
    if meWin == 0 :
        print(f"현재 승률 0%")
    else :
        print(f"현재 승률 {meWin / count * 100} %")
    
    q = input("다시 게임을 시작 하시겠습니까? (계속하려면 y입력): ")

# 0번째 게임
# you = 5 : cpu = 5 무승부입니다. 
# 0승 0패 1무
# 현재 승률 0%
# 다시 게임을 시작 하시겠습니까? (계속하려면 y입력): y
# 1번째 게임
# you = 6 : cpu = 3 당신이 승리햇습니다. 
# 1승 0패 1무
# 현재 승률 50.0 %
# 다시 게임을 시작 하시겠습니까? (계속하려면 y입력):

 

 

 

 

 

 

 

 

 

 

 

 

▶ 가위바위보 게임

import random

q = "y"
game = ["가위", "바위", "보"]
count = 0
win = 0
lose = 0

while q == "y" :
    me = random.choice(game)
    cpu = random.choice(game)
    count += 1
    print(f"총 게임 횟수 {count}회")

    if (me == "가위" and cpu == "보") or (me == "바위" and cpu == "가위") or (me == "보" and cpu == "바위") :
        win +=1
        print(f"당신 : {me}, cpu : {cpu} : 당신이 승리했습니다.")
    elif (cpu == "가위" and me == "보") or (cpu == "바위" and me == "가위") or (cpu == "보" and me == "바위") :
        lose +=1
        print(f"당신 : {me}, cpu : {cpu} : 당신이 패배했습니다.")
    else :
        print(f"당신 : {me}, cpu : {cpu} : 무승부입니다.")

    if win == 0 :
        print(f"현재 승률 0%")
    else :
        print(f"현재 승률 {win / count * 100} %")
    
    q = input("다시 게임을 시작 하시겠습니까? (계속하려면 y입력): ")

 

 

 

 

 

 

 

 

 

 

 

 

 

datetime module


날짜 및 시간과 관련된 데이터를 제공한다.

 

▶ 주요 메서드, 기능.

내장 함수명 설명
datetime.now() 현재 년, 월, 시, 분, 초, 마이크로초를 반환한다.
.year 연도
.moth
.day
.hour
.minute
.second
.microsecond 마이크로초(백만분의 일초)
.weekday() 요일 반환(0:월 ~ 6:일)
.strftime() 문자열 반환
.date() 날짜 정보만 가지는 date클래스 객체 반환
.time() 시간 정보만 가지는 time 클래스 객체 반환
.sleep(n) n초 동안 시간을 정지함.
1ctime() 인수 시간값을 현지 시간대 기준 "월 일 시 : 분 초 연" 형식으로 변환
time.tm_year 객체의 연/월/일/시/분/초/요일 속성
.localtime() 인수 시간값을 현지 시간대 기준 time 데이터로 변환
gmtime() 인수 시간값을 GMT 기준 time 데이터로 변환
time() 현재 unix timestamp를 소수로 반환.

 

 

기호 의미
%Y 네 자리 연도 ..., 2020, 2021, 2022, ...., 9999
%y 두 자리 연도 00, 01, ...., 99
%m 01, 02, ...., 12
%d 01, 02, ...., 31
%A 요일 Sunday, Monday, ...., Saturday
%a 생략 요일 Sun, Mon, ...., Sat
%H 시(24시 기준) 00, 01, ...., 23
%I 시(12시 기준) 01, 02, ...., 12
%p AM 또는 PM AM, PM
%M 00, 01, ...., 59
%S 00, 01, ...., 59

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OS module


운영체제와 관련된 기능을 가진 모듈

새로운 폴더를 만들거나 폴더 내부 파일을 확인한다.

 

 

 

 

 

 

 

 

 

파이썬 모듈(패키지)의 분류


 

▶ 표준 모듈

파이썬 기본으로 제공되는 모듈.

 

▶ 외부 모듈

  • 서드파티 모듈 : SW회사 등 기관에서 배포한 것
  • 사용자 정의모듈

 

 

 

 

 

 

 

 

 

 

서드파티 모듈 설치


서드파티 모듈을 이용하려면, 해당 모듈을 다운받아 설치해야한다.

 

 

▶ pip(the package installer for Python)

PiPy 패키지들 설치 프로그램

파이썬 설치하면 기본으로 설치된다.

 

 

 

▶ 설치 명령어

명령어 설명
pip install 모듈이름 모듈이름 설치
pip install --update 모듈이름 모듈이름의 최선버전 업그레이드
pip uninstall 모듈이름 설치된 모듈이름 삭제

 

 

반응형

'Python' 카테고리의 다른 글

[Python] CRAWLING - BeautifulSoup  (0) 2022.09.13
[python] WEB CRAWLING  (1) 2022.09.08
[python] Package  (0) 2022.09.06
[python] 예외처리  (0) 2022.09.06
[python] Class  (0) 2022.09.03