본문 바로가기
오픈소스를 위한 기초 상식

파이썬 기초 실습_ 사칙 연산 계산기 만들기

by 지나가는 프로도 2025. 1. 16.

실습 코드

더보기

def calculator():
    while True:
        print("\n간단한 계산기 프로그램입니다.")
        print("1. 덧셈")
        print("2. 뺄셈")
        print("3. 곱셈")
        print("4. 나눗셈")
        print("5. 종료")
        
        # 사용자로부터 선택 입력받기
        choice = input("\n원하는 연산을 선택하세요 (1-5): ")
        
        # 종료 조건 확인
        if choice == '5':
            print("계산기를 종료합니다.")
            break
        
        # 유효한 선택인지 확인
        if choice not in ['1', '2', '3', '4']:
            print("잘못된 선택입니다. 1부터 5 사이의 숫자를 입력해주세요.")
            continue
        
        # 두 숫자 입력받기
        try:
            num1 = float(input("첫 번째 숫자를 입력하세요: "))
            num2 = float(input("두 번째 숫자를 입력하세요: "))
        except ValueError:
            print("유효한 숫자를 입력해주세요.")
            continue
        
        # 선택된 연산 수행
        if choice == '1':
            result = num1 + num2
            print(f"\n{num1} + {num2} = {result}")
        elif choice == '2':
            result = num1 - num2
            print(f"\n{num1} - {num2} = {result}")
        elif choice == '3':
            result = num1 * num2
            print(f"\n{num1} * {num2} = {result}")
        elif choice == '4':
            if num2 == 0:
                print("0으로 나눌 수 없습니다.")
                continue
            result = num1 / num2
            print(f"\n{num1} / {num2} = {result}")

if __name__ == "__main__":
    calculator()

 

 

어떤 지식이 적용된지 알아보자

  • 사용자 입력 받기 (input())
  • 변수 선언과 사용
  • if-elif-else 조건문
  • while 반복문
  • 기본 사칙연산 (+, -, *, /)
  • 예외처리 (try-except)

이런 기본 개념들을 활용하면 더 다양하고 복잡한 기능도 추가할 수 있습니다. 예를 들면:

  • 제곱, 제곱근 같은 고급 연산 추가
  • 계산 기록 저장 기능
  • GUI(그래픽 사용자 인터페이스) 추가
  • 다양한 단위 변환 기능

 

각 코드에 적용된 개념을 한번 살펴보자

  • 변수(Variables)
choice = input("\n원하는 연산을 선택하세요 (1-5): ") # 문자열 변수 num1 = float(input("첫 번째 숫자를 입력하세요: ")) # 실수형 변수 result = num1 + num2 # 계산 결과를 저장하는 변수

변수는 데이터를 저장하는 공간입니다. 코드에서는 사용자의 선택(choice), 입력 숫자(num1, num2), 계산 결과(result)를 저장하는데 사용했습니다.

  • 데이터 타입(Data Types)
choice = input() # 문자열(str) 타입 num1 = float(input()) # 실수(float) 타입

입력받은 값의 종류에 따라 적절한 데이터 타입을 사용했습니다. 메뉴 선택은 문자열로, 계산할 숫자는 실수형으로 변환했습니다.

  • 조건문(Conditional Statements)
if choice == '5': # 프로그램 종료 조건 print("계산기를 종료합니다.") break elif choice == '1': # 덧셈 선택 result = num1 + num2

사용자의 선택에 따라 다른 동작을 수행하도록 if-elif-else 구문을 사용했습니다.

  • 반복문(Loop)
while True: print("\n간단한 계산기 프로그램입니다.") # ... 계산기 메뉴와 동작 ...

while True를 사용해서 사용자가 종료를 선택할 때까지 프로그램이 계속 실행되도록 했습니다.

  • 예외 처리(Exception Handling)
try: num1 = float(input("첫 번째 숫자를 입력하세요: ")) except ValueError: print("유효한 숫자를 입력해주세요.")

사용자가 숫자가 아닌 값을 입력하는 경우나 0으로 나누려고 할 때와 같은 오류 상황을 안전하게 처리했습니다.

이러한 기본 개념들이 서로 결합되어 하나의 실용적인 프로그램을 만들었습니다. 예를 들어:

  • 반복문 안에서 조건문을 사용해 메뉴 선택을 처리
  • 예외 처리로 잘못된 입력을 안전하게 관리
  • 변수와 데이터 타입을 활용해 계산 결과를 저장하고 출력