본문 바로가기
PROGRAMING📚/Python📑

파이썬(Python) 함수 정의와 활용 결과값 출력하기

별찌루 2022. 4. 14.
728x90
반응형

함수

특정한 기능을 수행하는 코드들의 묶음을 말한다.

  • 큰 문제를 나누어 해결 가능하다.
  • 코드를 재사용 가능하다.
  • 안정성
  • 유지보수가 좋다. 

 

함수 정의

다음과 같이 정의하고 들여쓰기 하여 사용 하여야한다.

def 함수이름():

 

함수의 형태

 

매개변수와 반환값의 유무에 따라 네 가지 형태의 함수가 존재한다. 

  • 매개 변수와 반환값이 모두 있는 함수
  • 반환값만 있는 함수 
  • 매개변수만 있는 함수 
  • 모두 없는 함수

 

함수의 활용

 

1. 반복 

 

한 프로그램 내에 특정한 작업이 여러번 걸쳐 나오는 경우,

동일한 문장을 함수로 만들어 함수 호출로 여러번 사용 가능함

 

2. 독립성 

  • 하나의 함수는 한 가지 기능만을 포함하는 것을 권장한다. 
  • 각각 독립적이면서 특정한 목적의 코드를 한 곳에만 작성하면 관리하기 쉽고 유지 보수가 편리하다.

 

  • 자료형을 설정할 필요 없다. return 형이 없거나 하나거나 여러개를 만들 수 있다. 
  • 매개 변수 : 함수를 호출하는 쪽에서 넘겨주는 값이 저장되는 변수 함수의 입력으로 사용되는 값, 호출하는 쪽에서 전달 하는 값
  • 인수 : 함수를 호출 할 때, 전달하는 입력 값
  • 모듈 : 함수의 집합, 파이썬 프로젝트 하나가 하나의 모듈이다.

 

(실습 1)함수를 사용하여 물품 관리하기 (딕셔너리 실습3과 같은 결과 값을 출력한다.)

 

def c_add():
    plus = input("추가할 물품을 입력하세요 : ")
    plusV = int(input("구입할 물품의 갯수을 입력하세요 : "))
    
    if plus in items:
        items[plus] += plusV
        
def c_buy():
    add = input("구매를 원하는 물품을 입력하세요 : ")

    if add in items:
        v = int(input("구매 수량을 입력하세요 : "))
        if items[add] < v:
            print("재고가 부족합니다.")
        else:
            items[add] -= v
            if items[add] < 1:
                del items[add]
    else:
        print("없는 물품 입니다.")


items= {'coffe':100,'water':50,'milk':150,'bread':5}

print("<물품 관리>\n")
print("1. 물품 추가\n 2.물품 구매\n 3.물품 재고 확인\n 4. 종료\n")
print("=======================================================")
print(items)

while 1 :

    num =int(input("작업 선택 >>"))
    
    if num ==1 :
       c_add()
    elif num ==2:
        c_buy()
    elif num ==3:
        print(items)
    elif num ==4:
        break
    else :
        print("없는 작업입니다. 다시 선택하세요.")

(실습 2) 키와 몸무게를 입력 받아 bmi지수를 출력하세요

 

def bmi_calc(k,m):
    return int(m/k**2)

def bmi_decision(c):
    if c >=30:
        tResult ="고도비만"
    elif 25<= c <30 :
        tResult ="과체중"
    elif 18.5<= c <25 :
        tResult ="정상"
    elif c < 18.5 :
        tResult = "마름"
        
    print("당신은 {}입니다.".format(tResult))

print("< 실행 결과 >\n")

p_k = int(input("키 입력 >>"))
p_m = int(input("몸무게 입력 >>"))

re = p_k/100
tResult = bmi_calc(re,p_m)

print("당신의 bim지수는 {}입니다.".format(tResult))
bmi_decision(tResult)

(+추가) 모듈에서 함수를 가져와서 사용해보기 

 

<test03.py>

import bmi_test as b    #모듈 가져오기 ->같은 경로에 있어야 사용할 수 있음

print("< 실행 결과 >\n")

p_k = int(input("키 입력 >>"))
p_m = int(input("몸무게 입력 >>"))

re = p_k/100
tResult = b.bmi_calc(re,p_m)

print("당신의 bim지수는 {}입니다.".format(tResult))
b.bmi_decision(tResult)

<bmi_test.py>

def bmi_calc(k,m):
    return int(m/k**2)

def bmi_decision(c):
    if c >=30:
        tResult ="고도비만"
    elif c >= 25 & c<30 :
        tResult ="과체중"
    elif 18.5<= c <25 :
        tResult ="정상"
    elif c < 18.5 :
        tResult = "마름"
        
    print("당신은 {}입니다.",tResult)

(실습 3)계약 금액과 사용개월수 만큼의 할인율을 계산하여 최종요금을 계산하기

def s_discount(a,b):

    if b<=6 :
        return a*1
    elif b>6 & b<=12 :
        return a/10
    elif b>12 :
        return a/5

def c_discount(a1,c1):
    if c1 == 11 :
        return a1/20
    elif c1 ==12 :
        num = 8/100
        return a1*num
    elif c1 ==13:
        num1 = 12/100
        return a1*num1

contractPrice = int(input("계약 금액 입력 : \n"))
period = int(input("사용 개월 수 입력 : \n"))
cardDCode = int(input("카드 코드 입력 : \n"))

tPrice = s_discount(contractPrice,period)
finalPrice = c_discount(contractPrice,cardDCode)

print("최종 요금은 {} 입니다.".format(contractPrice-finalPrice))

728x90
반응형

댓글