본문 바로가기

Python

[파이썬 기초] 연산자 계산기 만들기

728x90
반응형
SMALL

파이썬이 매우 하고 싶어 아침부터 눈이 빠르게 떠졌다.

아침부터 Chat-GPT와 공부를 시작하는 나란 사람.

 

 

 

 

기본 계산기부터 가볍게 복습하고 출근합니다.

 

 

 

 

출근 후 도전해 볼 것이 아니라 퇴근 후 도전해봐야 하는데.

퇴근하고 다른 거 먼저 도전해 봤지만 아무튼 마저 수행해 봅니다.

 

 

1. 반복 계산

한 번 계산 후 다시 계산할지 물어보기

while True:
        
    num1 = float(input("첫 번째 숫자를 입력하세요 : "))
    operator = input("연산자를 입력하세요 (+, -, *, /) : ")
    num2 = float(input("두 번째 숫자를 입력하세요 : "))

    if operator == "+":
        result = num1 + num2
    elif operator == "-":
        result = num1 - num2
    elif operator == "*":
        result = num1 * num2
    elif operator == "/":
        if num2 != 0:
            result = num1 / num2
        else:
            result = "0으로 나눌 수 없습니다."
    else:
        result = "잘못된 연산자입니다."

    print(f"결과 : {result}")

    again = input("다시 계산하시겠습니까? (y/n) : ")
    if again.lower() != "y":
        print("프로그램을 종료합니다.")
        break

 

 

2. 더 복잡한 계산 추가
while True:
        
    num1 = float(input("첫 번째 숫자를 입력하세요 : "))
    operator = input("연산자를 입력하세요 (+, -, *, /, **, %, //) : ")
    num2 = float(input("두 번째 숫자를 입력하세요 : "))

    if operator == "+":
        result = num1 + num2
    elif operator == "-":
        result = num1 - num2
    elif operator == "*":
        result = num1 * num2
    elif operator == "/":
        if num2 != 0:
            result = num1 / num2
        else:
            result = "0으로 나눌 수 없습니다."
    elif operator == "**":
        result = num1 ** num2
    elif operator == "%":
        result = num1 % num2
    elif operator == "//":
        if num2 != 0:
            result = num1 // num2
        else:
            result = "0으로 나눌 수 없습니다."
    else:
        result = "잘못된 연산자입니다."

    print(f"결과 : {result}")

    again = input("다시 계산하시겠습니까? (y/n) : ")
    if again.lower() != "y":
        print("프로그램을 종료합니다.")
        break

 

 

3. 잘못된 입력 처리
while True:

    try:
        num1 = float(input("첫 번째 숫자를 입력하세요 : "))
        operator = input("연산자를 입력하세요 (+, -, *, /, **, %, //) : ")
        num2 = float(input("두 번째 숫자를 입력하세요 : "))

        if operator == "+":
            result = num1 + num2
        elif operator == "-":
            result = num1 - num2
        elif operator == "*":
            result = num1 * num2
        elif operator == "/":
            if num2 != 0:
                result = num1 / num2
            else:
                result = "0으로 나눌 수 없습니다."
        elif operator == "**":
            result = num1 ** num2
        elif operator == "%":
            result = num1 % num2
        elif operator == "//":
            if num2 != 0:
                result = num1 // num2
            else:
                result = "0으로 나눌 수 없습니다."
        else:
            result = "잘못된 연산자입니다."

        print(f"결과 : {result}")
    
    except ValueError:
        print("잘못된 숫자를 입력하셨습니다. 숫자만 입력해주세요!")

    again = input("다시 계산하시겠습니까? (y/n) : ")
    if again.lower() != "y":
        print("프로그램을 종료합니다.")
        break

 

 

의문점이 생긴 사람.

 

 

 

 

4. 개선된 반복 프로그램
while True:

    try:
        num1 = float(input("첫 번째 숫자를 입력하세요 : "))
        operator = input("연산자를 입력하세요 (+, -, *, /, **, %, //) : ")
        num2 = float(input("두 번째 숫자를 입력하세요 : "))

        if operator == "+":
            result = num1 + num2
        elif operator == "-":
            result = num1 - num2
        elif operator == "*":
            result = num1 * num2
        elif operator == "/":
            if num2 != 0:
                result = num1 / num2
            else:
                result = "0으로 나눌 수 없습니다."
        elif operator == "**":
            result = num1 ** num2
        elif operator == "%":
            result = num1 % num2
        elif operator == "//":
            if num2 != 0:
                result = num1 // num2
            else:
                result = "0으로 나눌 수 없습니다."
        else:
            result = "잘못된 연산자입니다."

        print(f"결과 : {result}")
    
    except ValueError:
        print("잘못된 숫자를 입력하셨습니다. 숫자만 입력해주세요!")

    while True:
        again = input("다시 계산하시겠습니까? (y/n) : ").lower()
        if again == "y":
            break
        elif again == "n":
            print("프로그램을 종료합니다.")
            exit()
        else:
            print("잘못된 입력입니다. y 또는 n을 입력해주세요.")

 

 

그렇다. 계산기 기능 발전은 아니지만, 엉뚱한 곳에서 버그를 찾았다.

이제 내일부터는 어떤 것을 알려줄지 기대가 된다.

근데 내일은 바빠서 공부할 시간이 있을지 모르겠네.

 

 

728x90
반응형
LIST