[6일차] 파이썬 중급3

하은·2023년 10월 20일
0

011. 모듈사용

import, from, as 키워드를 이용한다.

- import

- import 키워드를 이용해서 모듈을 임포트 한다.

  • import = 모듈 실행 키워드

- as 키워드를 이용해서 모듈이름을 단축시킬 수 있다.

  • 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

# 또는
from calculator import add, sub

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

--> 
덧셈 결과: 30
뺼셈 결과: -10
  • 전부 다 가져오고자 하면 ' * ' 를 쓰면 된다
from calculator import *

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

? 실습) 국어, 영어, 수학 점수를 입력하면 총점, 평균을 출력하는 모듈을 만들어보자

# work.py

scores = [] # 모듈

def addScore(s): #리스트에 추가
    scores.append(s) # ?

def getScore(): #다시 가져옴
    return scores

def getTotalScore(): #저장된 값들의 합을 구하는
    total = 0
    for s in scores:
        total += s

    return total

def getAvgScore(): #저장된 값들의 평균 구하는
    avg = getTotalScore() / len(scores) # ?

    return avg

--

# work.module.py

import work as sc

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

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

print(sc.getScore())
print(sc.getTotalScore())
print(sc.getAvgScore())

-->
국어 점수 입력: 100
영어 점수 입력: 90
수학 점수 입력: 80
[100, 90, 80]
270
90.0

012. 실행(메인)파일(1)

전역변수 _ name _ 을 이용한 실행파일 지정

- _ name _ 전역변수

- '_ name ' 에는 모듈의 파일명이 저장되거나, 실행(메인)파일에는 ' main _'이 저장된다.

  • 프로젝트 파일(파이썬)을 여러개 만들어서 쓸 수 있음.
    이 모든 걸 하나로 묶어 실행시키는 파이썬 엔진이 있다.
    main method가 없어서 프로그램이 뭘 가장 먼저 실행해야하는지 헷갈려함.
    main이란 전역변수가 파일을 찾아서 먼저 실행함.
# module.py

import addModule
import subModule
import mulModule
import divModule

def mod(n1, n2):
    return n1 % n2
        
if __name__ == '__main__':
    print(addModule.add(10, 20))
    print(subModule.sub(10, 20))
    print(mulModule.mul(10, 20))
    print(divModule.div(10, 20))
  • if name == 'main'
    = 이 파일이 실행파일일 경우에만 실행되도록 조건을 건 것
    = 다른데서 import module 해서 - mod를 쓰기 위함

013. 실행(메인파일)(2)

전역변수 name을 이용한 실행파일 지정.

실습) 단위환산 모듈을 만들고 cm를 mm, inch, m, ft로 변환해보자

  • 모듈파일은 파이썬 파일과도 같다.
  • if name == 'main'
    : 이 밑에 있는 문장들은, 실행파일일경우 (name이라는 전역변수에 main이라는 문자열이 저장된 경우)에만 실행된다.
# unitConversion.py

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')

--

# module.py

import unitConversion as uc

if __name__ == '__main__':
    inputNumber = int(input('길이(cm) 입력: '))

    returnValue = uc.cmToMm(inputNumber)
    print(f'returnValue: {returnValue}mm')

    returnValue = uc.cmToInch(inputNumber)
    print(f'returnValue: {returnValue}inch')

    returnValue = uc.cmToM(inputNumber)
    print(f'returnValue: {returnValue}m')

    returnValue = uc.cmToFt(inputNumber)
    print(f'returnValue: {returnValue}ft')

014. 패키지

모듈을 묶어서 관리하자

- 패키지

- 패키지를 이용하면 관련있는 모듈을 그룹으로 관리할 수 있다.

  • 음악파일들을 모아서 특정한 규칙대로 '음악'파일에 넣어놓는 것처럼,
    비슷한 기능가진 모듈들을 하나의 디렉토리로 만들어 관리할 수 있다. = 패키지
from calculatorForInt import addCal
from calculatorForInt import subCal
from calculatorForInt import mulCal
from calculatorForInt import divCal

print(addCal.add(10, 20))
print(subCal.sub(10, 20))
print(mulCal.mul(10, 20))
print(divCal.div(10, 20))

from calculatorForFloat import addCal
from calculatorForFloat import subCal
from calculatorForFloat import mulCal
from calculatorForFloat import divCal

print(addCal.add(10, 20))
print(subCal.sub(10, 20))
print(mulCal.mul(10, 20))
print(divCal.div(10, 20))

015. site-packages

어디서나 접근가능한 패키지를 만들자!

- site-packages

- site-packages에 있는 모듈은 어디서나 사용할 수 있다.

  • 모듈은 같은 디렉토리 안에 있어야 쓸 수 있다.
  • site-packages = 범용적으로 한 모듈을 쓸 수 있는 방법
import sys #시스템에 대한 간략한 정보를 갖고 있는 모듈

for path in sys.path: #경로 나열 값을 가진 모듈
    print(path)
    
-->
C:\Users\User\Desktop\python_ex\5_015
C:\Users\User\Desktop\python_ex
C:\Users\User\AppData\Local\Programs\Python\Python311\python311.zip
C:\Users\User\AppData\Local\Programs\Python\Python311\DLLs
C:\Users\User\AppData\Local\Programs\Python\Python311\Lib
C:\Users\User\AppData\Local\Programs\Python\Python311
C:\Users\User\Desktop\python_ex\venv
C:\Users\User\Desktop\python_ex\venv\Lib\site-packages

vertual environment
파이참 에서는 가상환경을 만들어서 작업가능
3.7과 3.9 버전의 차이가 있을 때, 서로 영향주고받지 않고 독립적으로 작업함.
라이브러리등 프로젝트마다 특이한 환경을 가상환경으로 구현해서 사용가능
가상환경구현하는게 venv
한 모듈을 범용적으로 쓰려면 venv - lib - sitepackages에 옮기면 됨

실습) site-packages에 약수와 소수를 리스트로 반환하는 모듈을 만들어보자

0개의 댓글