간단한 계산기 만들기
숫자만 넣으면 바로 계산! “간단한 계산기” 만들기
이전 글에서 조건에 따른 메시지 출력까지 해봤잖아.
이번엔 그 흐름 그대로, 숫자를 입력받아서 사칙연산 결과를 콘솔에 딱 보여주는 계산기를 만들어볼 거야. 완전 기본인데, 이게 은근히 “프로그램이 살아있다!” 느낌이 나더라. 나름 재밌음.
우리가 만들 계산기 모양
예를 들면 이런 식으로 돌아가면 돼.
- 첫 번째 숫자 입력
- 연산자 입력 (
+,-,*,/) - 두 번째 숫자 입력
- 결과 출력
그리고 사용자가 뭔가 이상한 걸 넣으면,
- “연산자를 다시 확인해줘요!”
- “숫자 입력이 필요해요!”
같은 식으로 조건문으로 친절하게 안내할 거야. (이전 글이랑 연결되는 부분!)
전체 코드(일단 한 번에 보기)
여기서부터는 파이썬 기준으로 작성할게. (바이브 코딩이라면 너도 이미 이 흐름 익혔을 거라고 믿어!)
def get_number(prompt):
while True:
value = input(prompt)
try:
return float(value)
except ValueError:
print("음... 숫자를 입력해야 해요. 예: 3, 3.14, -2")
def get_operator(prompt):
allowed = ['+', '-', '*', '/']
while True:
op = input(prompt).strip()
if op in allowed:
return op
print("어? 연산자가 잘못됐어요! +, -, *, / 중에서 골라주세요.")
def calculate(a, op, b):
if op == '+':
return a + b
elif op == '-':
return a - b
elif op == '*':
return a * b
elif op == '/':
if b == 0:
print("아! 0으로 나누기는 불가능해요.")
return None
return a / b
# 메인 흐름
print("간단한 계산기 시작!")
a = get_number("첫 번째 숫자를 입력하세요: ")
op = get_operator("연산자를 입력하세요 (+, -, *, /): ")
b = get_number("두 번째 숫자를 입력하세요: ")
result = calculate(a, op, b)
if result is not None:
print(f"결과: {a} {op} {b} = {result}")
코드가 하는 일, 한 줄씩 “사람 말”로 해석하기
1) 숫자 입력은 “계속 물어보기”
get_number()에서 핵심은 이거야:
- 사용자가 입력한 값을
float()로 바꿔보려고 함 - 만약 숫자가 아니면
ValueError발생 - 그럼 while True로 다시 입력 받음
솔직히 말하면, 처음에 나는 이거 안 넣고 “한 번만 입력받으면 끝!”으로 했다가…
누가 "abc" 넣는 순간 프로그램이 그냥 죽어서 완전 당황했거든.
그래서 “아, 사용자가 실수해도 안 죽는 게 진짜 좋은 프로그램이지” 싶더라. 음... 교훈임.
2) 연산자 입력은 “허용 목록”으로 걸러주기
get_operator()에서 allowed = ['+', '-', '*', '/'] 이 리스트로 막아버려.
+-*/아니면 다시 입력하게 함- 이건 이전 글에서 배운 조건문 흐름 제어랑 똑같은 느낌이야.
3) 실제 계산은 calculate()에서 담당
calculate(a, op, b):
op에 따라if/elif로 계산- 나눗셈(
/)일 때는b == 0체크
→ 0으로 나누면 오류가 터지니까, 먼저 막아주기
이 부분이 사실 계산기에서 제일 “실전 느낌” 나는 부분이야.
(여기서 안 막으면, 프로그램이 “고장 모드”로 바뀌거든. 너무 싫음.)
실행 예시(대충 이런 느낌)
예를 들어 입력이 이렇게 들어오면:
- 첫 번째 숫자:
10 - 연산자:
* - 두 번째 숫자:
3
출력:
결과: 10.0 * 3.0 = 30.0
그리고 사용자가 연산자를 x 같은 걸 넣으면?
- “어? 연산자가 잘못됐어요! +, -, *, / 중에서 골라주세요.”
숫자 대신 one 같은 걸 넣으면?
- “음... 숫자를 입력해야 해요…”
이게 바로 조건문 출력이랑 자연스럽게 이어지는 흐름이야. 나름 정석!
근데 여기서 “한 가지 더” 생각해보기
지금 계산기는 한 번 계산하고 끝나지?
근데 현실에선 보통 계속 계산하고 싶잖아?
그래서 다음 글(5-4)에서는 아예 이런 흐름으로 확장해볼 거야:
- 텍스트로 메뉴 출력
- “1) 더하기 2) 빼기 3) 곱하기 4) 나누기 0) 종료” 같은 선택
- 선택에 따라 계산 실행
즉, 계산기의 입력/출력 경험이 훨씬 편해지는 방향으로 가는 거지.
다음: 텍스트 기반 메뉴 만들기(5-4)
이제 계산 로직은 준비됐어.
다음 글에서는 이걸 “사용자 친화적으로” 바꿔서,
- 입력을 깔끔하게 받고
- 실행 흐름을 메뉴로 제어하는 방식
을 만들어볼게.
자, 다음 글에서 같이 “진짜 계산기 느낌” 내보자! 😄





