모듈 (4월 12일)

송영석·2023년 4월 12일
0

데이터스쿨 14기

목록 보기
2/18

모듈이란, 특정 기능을 가지고 있는 파이썬 파일

  • 내부 모듈 : 파이썬 설치 시 기본적으로 사용할 수 있는 모듈
  • 외부 모듈 : 별도 설치 후 사용할 수 있는 모듈
  • 사용자 모듈 : 사용자가 직접 만든 모듈

키워드

  • import : 모듈을 임포트
  • as : 모듈 이름을 단축
  • from : from ~ import 통해 모듈의 특정 기능만 사용할 수 있음

__name__ 전역변수

  • 모듈 이름이 저장되거나 '__main__'이 저장됨

패키지

  • 패키지를 통해 관련 있는 모듈을 그룹으로 관리 가능
  • site-packages에 있는 모듈은 어디서나 사용 가능

자주 사용하는 모듈

  • math 모듈
  • random 모듈
  • time 모듈
09

<실습1>

import random

randomNumber = random.randint(1, 10)
print(f"randomNumber : {randomNumber}")


<실습2>

import random

randomNumbers = random.sample(range(101), 10)
print(f"randomNumbers : {randomNumbers}")
10

<실습1 로또 번호를 출력하는 모듈>

import random

def lottoNumbers():
    result = random.sample(range(1, 46), 6)

    return result
    
--------------------------------------------

import lottoMachine

lotto = lottoMachine.lottoNumbers()
print(f"lottoNumbers : {lotto}")


<실습2 문자열을 거꾸로 반환하는 모듈>

def backward(str):

    backwardString = ""
    for c in str:
        backwardString = c + backwardString

    return backwardString

---------------------------------------------

import text

userInputStr = input("문자열 입력: ")
backwardtext = text.backward(userInputStr)
print(f"backwardtext : {backwardtext}")
11

def add(n1, n2):
    print(f"덧셈 결과 : {n1 + n2}")

def sub(n1, n2):
    print(f"뺄셈 결과 : {n1 - n2}")
    
def mul(n1, n2):
    print(f"곱셈 결과 : {n1 * n2}")

def div(n1, n2):
    print(f"나눗셈 결과 : {round(n1 / n2, 2)}")

---------------------------------------------
<import>
import calculator

calculator.add(10, 20)
calculator.sub(10, 20)
calculator.mul(10, 20)
calculator.div(10, 20)

<import as>
import calculator as cal

cal.add(10, 20)
cal.sub(10, 20)
cal.mul(10, 20)
cal.div(10, 20)

<from import>
from calculator import add
from calculator import sub

add(10, 20)
sub(10, 20)


<실습>

scores = []

def addScore(n):
    scores.append(n)

def getScores():
    return scores

def totalScore():
    total = 0
    for n in scores:
        total += n

    return total

def avgScore():
    avg = totalScore() / len(scores)

    return avg
    
-------------------------------------

import scores as sc

korScore = int(input("국어 점수 입력: "))
engScore = int(input("영어 점수 입력: "))
matScore = int(input("수학 점수 입력: "))

sc.addScore(korScore)
sc.addScore(engScore)
sc.addScore(matScore)

print(sc.getScores())    # scores 다시 가져오는 기능
print(sc.totalScore())
print(sc.avgScore())
12, 13

def add(n1, n2):
    return n1 + n2

if __name__ == "__main__":
    print(f"__name__ : {__name__}")
---
def sub(n1, n2):
    return n1 - n2

if __name__ == "__main__":
    print(f"__name__ : {__name__}")
---
def mul(n1, n2):
    return n1 * n2

if __name__ == "__main__":
    print(f"__name__ : {__name__}")
---
def div(n1, n2):
    return n1 / n2

if __name__ == "__main__":
    print(f"__name__ : {__name__}")
    
------------------------------------

import addModule
import subModule
import mulModule
import divModule

print(addModule.add(10, 20))
print(subModule.sub(10, 20))
print(mulModule.mul(10, 20))
print(divModule.div(10, 20))


<실습>

def cmTomm(n):
    return round(n * 10, 3)

def cmToinch(n):
    return round(n * 0.393, 3)

def cmTom(n):
    return round(n * 0.01, 3)

def cmToft(n):
    return round(n * 0.032, 3)

if __name__ == "__main__":
    print(f"10cm : {cmTomm(10)}mm")
    print(f"10cm : {cmToinch(10)}inch")
    print(f"10cm : {cmTom(10)}m")
    print(f"10cm : {cmToft(10)}ft")

----------------------------------------
import unit

if __name__ == "__main__":

    inputNumber = int(input("길이(cm) 입력: "))

    returnValue = unit.cmTomm(inputNumber)
    print(f"{inputNumber}cm : {returnValue}mm")

    returnValue = unit.cmToinch(inputNumber)
    print(f"{inputNumber}cm : {returnValue}inch")

    returnValue = unit.cmTom(inputNumber)
    print(f"{inputNumber}cm : {returnValue}m")

    returnValue = unit.cmToft(inputNumber)
    print(f"{inputNumber}cm : {returnValue}ft")
14

CalculatorFloat

def add(n1, n2):
    return float(n1 + n2)

if __name__ == "__main__":
    print(add(3.14, 1.2))
---
def sub(n1, n2):
    return float(n1 - n2)

if __name__ == "__main__":
    print(sub(3.14, 1.2))
---
def mul(n1, n2):
    return float(n1 * n2)

if __name__ == "__main__":
    print(mul(3.14, 1.2))
---
def div(n1, n2):
    return float(n1 / n2)

if __name__ == "__main__":
    print(div(3.14, 1.2))
~~~~~~~~~~~~~~~~~~~~~~~~~~~
CalculatorInt

def add(n1, n2):
    return int(n1 + n2)

if __name__ == "__main__":
    print(add(3.14, 1.2))
---
def sub(n1, n2):
    return int(n1 - n2)

if __name__ == "__main__":
    print(sub(3.14, 1.2))
---
def mul(n1, n2):
    return int(n1 * n2)

if __name__ == "__main__":
    print(mul(3.14, 1.2))
---
def div(n1, n2):
    return int(n1 / n2)

if __name__ == "__main__":
    print(div(3.14, 1.2))

----------------------------

from CalculatorInt import addCalculator
from CalculatorInt import subCalculator
from CalculatorInt import mulCalculator
from CalculatorInt import divCalculator

print(addCalculator.add(10, 20))
print(subCalculator.sub(10, 20))
print(mulCalculator.mul(10, 20))
print(divCalculator.div(10, 20))


from CalculatorFloat import addCalculator
from CalculatorFloat import subCalculator
from CalculatorFloat import mulCalculator
from CalculatorFloat import divCalculator

print(addCalculator.add(10, 20))
print(subCalculator.sub(10, 20))
print(mulCalculator.mul(10, 20))
print(divCalculator.div(10, 20))
15

def add(n1, n2):
    return n1 + n2

def sub(n1, n2):
    return n1 - n2

def mul(n1, n2):
    return n1 * n2

def div(n1, n2):
    return n1 / n2

from calculator import cal
print(f"cal.add(10, 20) : {cal.add(10, 20)}")
print(f"cal.sub(10, 20) : {cal.sub(10, 20)}")
print(f"cal.mul(10, 20) : {cal.mul(10, 20)}")
print(f"cal.div(10, 20) : {cal.div(10, 20)}")


<실습>

def divisor(inputNumber):
    result = []
    for number in range(1, (inputNumber + 1)):
        if inputNumber % number == 0:
            result.append(number)

    return result


def prime_number(inputNumber):
    result = []
    for number in range(2, (inputNumber + 1)):
        flag = True
        for n in range(2, number):
            if number % n == 0:
                flag = False
                break

        if (flag):
            result.append(number)

    return result

------------------------------------------------

from divisor_pac import divisor_mod as dm

print(f"10의 약수 : {dm.divisor(10)}")
print(f"50까지의 소수 : {dm.prime_number(50)}")
16

<수학 모듈>

- 합
listVar = [2, 4, 3.14, 58, 10, 2]
print(f"sum(listVar) : {sum(listVar)}")

- 최댓값
print(f"sum(listVar) : {max(listVar)}")

- 최솟값
print(f"sum(listVar) : {min(listVar)}")

- 거듭제곱
print(f"pow(13, 2) : {pow(13, 2)}")
print(f"pow(13, 3) : {pow(13, 3)}")
print(f"pow(13, 4) : {pow(13, 4)}")

- 반올림
print(f"round(3.141592, 1) : {round(3.141592, 1)}")
print(f"round(3.141592, 2) : {round(3.141592, 2)}")
print(f"round(3.141592, 3) : {round(3.141592, 3)}")
print(f"round(3.141592, 4) : {round(3.141592, 4)}")
print(f"round(3.141592, 5) : {round(3.141592, 5)}")


- 모듈
import math

-- 절댓값
print(f"math.fabs(-10) : {math.fabs(-10)}")
print(f"math.fabs(-0.12895) : {math.fabs(-0.12895)}")

-- 올림
print(f"math.ceil(5.21) : {math.ceil(5.21)}")
print(f"math.ceil(-5.21) : {math.ceil(-5.21)}")

-- 내림
print(f"math.floor(5.21) : {math.floor(5.21)}")
print(f"math.floor(-5.21) : {math.floor(-5.21)}")

-- 버림
print(f"math.trunc(5.21) : {math.trunc(5.21)}")
print(f"math.trunc(-5.21) : {math.trunc(-5.21)}")

-- 최대공약수
print(f"math.gcd(14, 21) : {math.gcd(14, 21)}")

-- 팩토리얼
print(f"math.factorial(10) : {math.factorial(10)}")

-- 제곱근
print(f"math.sqrt(4) : {math.sqrt(4)}")
print(f"math.sqrt(12) : {math.sqrt(12)}")

----------------------------------------------------

<랜덤 모듈>

import random

- 0이상 1미만 난수
print(f"random.random() : {random.random()}")

- 1이상 20이하 난수
print(f"random.randint(1, 20) : {random.randint(1, 20)}")

- 1이상 20미만 난수
print(f"random.randrange(1, 20) : {random.randrange(1, 20)}")

- 1이상 21미만 난수 5개
print(f"random.sample(range(1, 21), 5) : {random.sample(range(1, 21), 5)}")

- 무작위 한개 추출
listVar = [0, 1, 2, 3, 4, 5, 6]
print(f"random.choice(listVar) : {random.choice(listVar)}")

- 섞음
listVar = [0, 1, 2, 3, 4, 5, 6]
print(f"listVar : {listVar}")
random.shuffle(listVar)
print(f"shuffle listVar : {listVar}")

----------------------------------------------------------------------------

<시간 모듈>

import time

- 현재 시스템 시간
lt = time.localtime()
print(f"time.localtime() : {lt}")

-- 년
print(f"lt.tm_year : {lt.tm_year}")

-- 월
print(f"lt.tm_mon : {lt.tm_mon}")

-- 일
print(f"lt.tm_mday : {lt.tm_mday}")

-- 시간
print(f"lt.tm_hour : {lt.tm_hour}")

-- 분
print(f"lt.tm_min : {lt.tm_min}")

-- 초
print(f"lt.tm_sec : {lt.tm_sec}")

-- 요일
print(f"lt.tm_wday : {lt.tm_wday}")  # 요일의 경우, 0(월) 부터 숫자로 표현
자료출처 : 제로베이스 데이터스쿨
profile
매일매일 작성!!

0개의 댓글