본문 바로가기
개발일지/임시카테고리

파이썬 - 계산기 간편화 코드

by 다니엘의 개발 이야기 2025. 6. 1.
320x100

과제가 주어졌다.

덧셈부터 종료까지 8가지의 조건이 주어지고,

이것을 계산하는 수식을 만드는 것이다.

 

import operator

# 계산자
ops = {
    1: ('+', operator.add),
    2: ('-', operator.sub),
    3: ('*', operator.mul),
    4: ('/', operator.truediv),
    5: ('%', operator.mod),
    6: ('//', operator.floordiv),
    7: ('**', operator.pow),
}

while True:
    try:
        took = int(input('1.덧셈, 2.뺄셈, 3.곱셈, 4.나눗셈, 5.나머지, 6.몫, 7.제곱승, 8.종료: '))
    except ValueError:
        print('숫자 1~8중에서 입력 해 주세요.')
        continue

    if took == 8:
        print("Bye~")
        break

    if took not in ops:
        print('잘못된 선택 입니다. 다시 시도 하세요.')
        continue
        
    # num1, num2 인수 받기 시작 루프
    while True:
        try:
            num1 = float(input('첫 번째 숫자 입력: '))
            break
        except ValueError:
            print('실수를 입력해 주세요.')
            continue

    while True:
        try:
            num2 = float(input('두 번째 숫자 입력: '))
            break
        except ValueError:
            print('실수를 입력해 주세요.')
            continue

    # 일종의 for문의 list[0] 이런 개념이라고 보면 될것같다.
    # symbol이 '+'의 개념이고
    # func가 뒤에나오는 operator.add 개념이다.
    symbol, func = ops[took]
    try:
        result = func(num1, num2)
        print(f'{num1} {symbol} {num2} = {result:.1f}')
    except ZeroDivisionError:
        print('0으로 나눌 수 없습니다.')

 

나도 처음엔 많이 헷갈렸던 부분이지만, for문의 list 개념이라 함은, 사실

symbol, func로 쓸필요 없다.

 

극단적으로 나는 a,b라고 사용한다.

첫번째가 list[0] 이고

두번째가 list[1] 인것이다.

300x250