230903_스터디노트

Sihyun Kim·2023년 9월 3일

모듈 사용

#calculator.py

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'나눗셈 결과: {n1/n2}')
#이름 바꿔치기

import calculator as cal

cal.add(10,20)
#모듈 일부만 호출

from calculator import add, sub

add(10,20)
sub(10,20)
#모듈 전체 호출

from calculator import *

add(10,20)
sub(10,20)
  • 모듈 전체 호출을 왜 굳이 이렇게 쓰는..? 이건 언제 쓰게 될까 😶

모듈 사용 (실습)

scores = []

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

def getScores():
    return scores

def getTotalScore():
    total = 0
    for s in scores:
        total += s

    return total

def getAvgScore():
    avg = getTotalScore() / 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.getTotalScore())
print(sc.getAvgScore())
  • 이제 점점 배운거랑 실습이랑 너무 차이나서 당황스럽고요... 정답지 보면서 혼자 생각하고 찾아보고 이해하려고 노력 중인데 이해가 30% 밖에 안돼서 일단 넘어간다

  • "[ ]"는 리스트, 여러개의 값을 한번에 다루는 컨테이너 타입 중 하나

  • append() 리스트 형태의 데이터에 마지막 값을 추가하는 함수

  • return을 하는 이유는 리턴값을 받아서 다른데다 써야 하기 때문에! 라고 한다...

실행(메인) 파일

  • 실행 파일과 모듈 파일의 차이
  • 실행 파일일 때만 사용하고 싶은 기능이 있다면, 아래와 같이 조건문을 넣어주면 해결
if __name__ == '__main__':
    print(f'__name__: {__name__}')

실행(메인) 파일 실습

def cmToMm(n):
    return round (n * 10, 2)

def cmToInch(n):
    return round (n * 0.394 ,2)

def cmToM(n):
    return round (n * 0.01, 2)

def cmToFt(n):
    return round (n * 0.033, 2)


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 unitConv as uc

userNum = int(input('길이(cm) 입력: '))


if __name__ == '__main__':
    print(f'{uc.cmToMm(userNum)}mm')
    print(f'{uc.cmToInch((userNum))}inch')
    print(f'{uc.cmToM(userNum)}m')
    print(f'{uc.cmToFt((userNum))}ft')
  • round (숫자, 2) < 기억하기

패키지

#CalculatorForInt > addCal.py

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

if __name__ == '__main__':
    print(add(3.14, 1.2))
#CalculatorForFloat > addCal.py

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

if __name__ == '__main__':
    print(add(3.14, 1.2))
from CaculatorForFloat import addCal

print(addCal.add(4.5, 8))


from CaculatorForInt import addCal

print(addCal.add(4.5, 8))
  • (경) 패키지의 개념을 습득하였습니다! (축)

site-packages (실습)

👿

def prime_number(n):
    result2 = []

    Flag = True
    while Flag:
        for j in range (2, n+1):
            for l in range (2, j+1):

                if j % l == 0:
                    Flag = False

                else:
                    result2.append(j)


    return result2
  • 이렇게 썼더니 환장파티
def divisor(n):
    result1 = []
    for i in range (1, n+1):
        if n % i == 0:
            result1.append(i)

    return result1



def prime_number(n):
    result2 = []


    for j in range (2, n+1):
         for l in range (2, j+1):

            if j==l:
                 result2.append(j)

            if j % l == 0:
                 break


    return result2


if __name__ == '__main__':
    print(f'10의 약수: {divisor(10)}')
    print(f'50까지의 소수: {prime_number(50)}')
  • 약수 구해서 리스트에 넣는 건 혼자서 OK
  • 소수는 나올 때마다 두통유발

객체지향 프로그래밍

  • 객체 (Object) = 속성 (Attribute) + 기능 (Function)

  • 객체는 클래스에서 생성된다
    ex) 클래스: 붕어빵 틀, 객체: 붕어빵

  • 객체 사용의 장점: 코드 재사용, 모듈화에 좋다

클래스와 객체 생성

class Car:

   def __init__(self,col, len):
       self.color = col
       self.length = len

   def doStop(self):
       print('STOP')

   def doStart(self):
       print('START!')
  • 클래스로부터 객체를 생성할 때는,
    클래스 명을 사용해서 함수 호출하듯 사용하면 (눈에 안보이는) 생성자를 호출함
car1 = Car('red, 200')
car2 = Car('blue, 300')

클래스와 객체 생성 (실습)

class Airplane:

    def __init__(self, col, len, wgt):
        self.color = col
        self.length = len
        self.weight = wgt

    def doDeparture(self):
        print('Departure')

    def doLanding(self):
        print('Landing')

    def printAirplaneInfo(self):
        print(f'{self.color}, {self.length}, {self.weight}')

airplane1 = Airplane('red', 76, 250)
airplane2 = Airplane('blue', 50, 200)
airplane3 = Airplane('pink', 74, 275)
airplane4 = Airplane('black', 66, 230)
airplane5 = Airplane('white', 70, 266)

airplane1.printAirplaneInfo()
airplane2.printAirplaneInfo()
airplane3.printAirplaneInfo()
airplane4.printAirplaneInfo()
airplane5.printAirplaneInfo()
airplane1.doLanding()
airplane4.doDeparture()
profile
문과이과예체능통합형인재

0개의 댓글