Python 실습(함수)

dumbbelldore·2024년 11월 8일
0

zero-base 33기

목록 보기
12/97

1. 산술연산 계산기 프로그램

  • 사용자로부터 두 가지 숫자와 기능 선택 입력을 받아 결과를 출력하는 프로그램을 만드시오. (단, 덧셈, 뺄셈, 곱셈, 나눗셈, 몫, 나머지, 제곱승, 종료 기능을 포함한다.)
def add_func(num_1, num_2):
    return num_1 + num_2
    
def sub_func(num_1, num_2):
    return num_1 - num_2
    
def mul_func(num_1, num_2):
    return num_1 * num_2
    
def div_func(num_1, num_2):
    return num_1 / num_2
    
def quo_func(num_1, num_2):
    return num_1 // num_2
    
def rem_func(num_1, num_2):
    return num_1 % num_2
    
def pow_func(num_1, num_2):
    return num_1 ** num_2
    
while True:

    func = int(input("기능을 선택하세요: \n > 1. 덧셈, 2. 뺄셈, 3. 곱셈,\n > 4. 나눗셈 , 5.몫, 6. 나머지,\n > 7. 제곱승, 8. 종료\n"))
    
    if func == 8:
        print("** See you next time **")
        break
    
    else:
        num_1 = int(input("숫자1 입력: "))
        num_2 = int(input("숫자2 입력: "))
        
        print("="*40)
        
        if func == 1:
            print("> 결과: {:,d} + {:,d} = {:,d}".format(num_1, num_2, add_func(num_1, num_2)))
            
        elif func == 2:
            print("> 결과: {:,d} - {:,d} = {:,d}".format(num_1, num_2, sub_func(num_1, num_2)))
            
        elif func == 3:
            print("> 결과: {:,d} * {:,d} = {:,d}".format(num_1, num_2, mul_func(num_1, num_2)))
            
        elif func == 4:
            print("> 결과: {:,d} / {:,d} = {:,d}".format(num_1, num_2, div_func(num_1, num_2)))
            
        elif func == 5:
            print("> 결과: {:,d} // {:,d} = {:,d}".format(num_1, num_2, quo_func(num_1, num_2)))
            
        elif func == 6:
            print("> 결과: {:,d} % {:,d} = {:,d}".format(num_1, num_2, rem_func(num_1, num_2)))
            
        elif func == 7:
            print("> 결과: {:,d} ** {:,d} = {:,d}".format(num_1, num_2, pow_func(num_1, num_2)))
        
        print("="*40)

# 출력예시
# 기능을 선택하세요: 
#  > 1. 덧셈, 2. 뺄셈, 3. 곱셈,
#  > 4. 나눗셈 , 5.몫, 6. 나머지,
#  > 7. 제곱승, 8. 종료
# 1
# 숫자1 입력: 3
# 숫자2 입력: 5
# ========================================
# > 결과: 3 + 5 = 8
# ========================================
# 기능을 선택하세요: 
#  > 1. 덧셈, 2. 뺄셈, 3. 곱셈,
#  > 4. 나눗셈 , 5.몫, 6. 나머지,
#  > 7. 제곱승, 8. 종료
# 6
# 숫자1 입력: 10
# 숫자2 입력: 3
# ========================================
# > 결과: 10 % 3 = 1
# ========================================
# 기능을 선택하세요: 
#  > 1. 덧셈, 2. 뺄셈, 3. 곱셈,
#  > 4. 나눗셈 , 5.몫, 6. 나머지,
#  > 7. 제곱승, 8. 종료
# 8
# ** See you next time **
# === Code Execution Successful ===
    

2. 단리 및 월복리 계산 프로그램

  • 예치금액, 기간(년), 연이율(%) 정보를 입력받아 각각 단리 및 월복리 계산을 수행하고 최종 수령액을 출력하는 프로그램을 만드시오.
amt = int(input("예치금(원) 입력: "))
yrs = int(input("예치기간(년) 입력: "))
rto = float(input("연이율(%) 입력: "))


def res_print(amt, tot_int, tot_amt, flag):
    print("="*40)
    print("> 단리계산 결과" if flag == "simp" else "> 월복리계산 결과")
    print("> 원금(원): {:,d}원".format(amt))
    print("> 이자(원): {:,d}원".format(int(tot_int)))
    print("> 총 수령(원): {:,d}원".format(int(tot_amt)))
    print("="*40)

# 단리    
def calc_simp(amt, yrs, rto):
    tot_int, tot_amt = 0, 0
    for yr in range(yrs):
        tot_int += amt * (rto * 0.01)
    tot_amt = amt + tot_int
    res_print(amt, tot_int, tot_amt, "simp")

# 월복리 
def calc_comp(amt, yrs, rto):
    tot_int, tot_amt = 0, amt
    mths = yrs * 12
    for mth in range(mths):
        tot_amt += tot_amt * (rto * 0.01 / 12)
    tot_int = tot_amt - amt
    res_print(amt, tot_int, tot_amt, "comp")

calc_simp(amt, yrs, rto)
calc_comp(amt, yrs, rto)

# 출력예시
# 예치금(원) 입력: 20000000
# 예치기간(년) 입력: 5
# 연이율(%) 입력: 5
# ========================================
# > 단리계산 결과
# > 원금(원): 20,000,000원
# > 이자(원): 5,000,000원
# > 총 수령(원): 25,000,000원
# ========================================
# ========================================
# > 월복리계산 결과
# > 원금(원): 20,000,000원
# > 이자(원): 5,667,173원
# > 총 수령(원): 25,667,173원
# ========================================

3. 등차 수열 계산 프로그램

  • 사용자로부터 시작값과 공차, 종료값 차수를 입력받아 종료값과 종료값까지의 등차 수열 합을 출력하는 프로그램을 만드시오.
start_num = int(input("시작 값 입력: "))
gap = int(input("공차 입력: "))
end_dgr = int(input("종료값 차수 입력: "))

print("="*40)

def end_num_calc(start_num, gap, end_dgr):
    
    cur_num = start_num
    sum_cnt = 1
    cum_sum = 0
    
    while sum_cnt <= end_dgr:
        cum_sum += cur_num
        print(f"> {sum_cnt}번째 항의 값: {cur_num}")
        print(f"> {sum_cnt}번째 항까지의 누적합: {cum_sum}")
        sum_cnt += 1
        cur_num += gap
        
end_num_calc(start_num, gap, end_dgr)

print("="*40)

# 시작 값 입력: 2
# 공차 입력: 3
# 종료값 차수 입력: 7
# ========================================
# > 1번째 항의 값: 2
# > 1번째 항까지의 누적합: 2
# > 2번째 항의 값: 5
# > 2번째 항까지의 누적합: 7
# > 3번째 항의 값: 8
# > 3번째 항까지의 누적합: 15
# > 4번째 항의 값: 11
# > 4번째 항까지의 누적합: 26
# > 5번째 항의 값: 14
# > 5번째 항까지의 누적합: 40
# > 6번째 항의 값: 17
# > 6번째 항까지의 누적합: 57
# > 7번째 항의 값: 20
# > 7번째 항까지의 누적합: 77
# ========================================

4. 등비 수열 계산 프로그램

  • 사용자로부터 시작값과 공차, 종료값 차수를 입력받아 종료값과 종료값까지의 등비 수열 합을 출력하는 프로그램을 만드시오.
start_num = int(input("시작 값 입력: "))
gap = int(input("공차 입력: "))
end_dgr = int(input("종료값 차수 입력: "))

print("="*40)

def end_num_calc(start_num, gap, end_dgr):
    
    cur_num = start_num
    sum_cnt = 1
    cum_sum = 0
    
    while sum_cnt <= end_dgr:
        cum_sum += cur_num
        print(f"> {sum_cnt}번째 항의 값: {cur_num}")
        print(f"> {sum_cnt}번째 항까지의 누적합: {cum_sum}")
        sum_cnt += 1
        cur_num *= gap # 등차 수열 코드 중 이 부분만 '*='로 변경
        
end_num_calc(start_num, gap, end_dgr)

print("="*40)

# 출력예시
# 시작 값 입력: 2
# 공차 입력: 3
# 종료값 차수 입력: 5
# ========================================
# > 1번째 항의 값: 2
# > 1번째 항까지의 누적합: 2
# > 2번째 항의 값: 6
# > 2번째 항까지의 누적합: 8
# > 3번째 항의 값: 18
# > 3번째 항까지의 누적합: 26
# > 4번째 항의 값: 54
# > 4번째 항까지의 누적합: 80
# > 5번째 항의 값: 162
# > 5번째 항까지의 누적합: 242
# ========================================

*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 분석, 데이터 사이언스 학습 저장소

0개의 댓글