Windows · Python 3.12.4. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.
이 글의 순서 5개 단락
한 번 계산할 때마다 프로그램을 다시 시작하지 않도록 계산기를 바꿔 보겠습니다. 연산자를 먼저 입력받고, 종료 명령이 아니면 두 수를 받아 계산한 뒤 다시 연산자를 묻습니다.
반복문으로 계산 이어가기
while은 조건이 참인 동안 들여쓰기된 코드를 반복합니다. while True:의 조건 True는 항상 참이므로, 반복을 끝내려면 별도의 종료 방법이 필요합니다. 여기서는 연산자로 q를 입력하면 break가 가장 가까운 반복문을 즉시 끝냅니다.
이번 예제의 환경은 Python 3.12입니다. 숫자는 float()로 변환할 수 있는 값을 입력합니다.
반복 계산기 만들기
while True:
operator = input("연산자 (+, -, *, /, q): ")
if operator == "q":
print("계산기를 종료합니다.")
break
if operator != "+" and operator != "-" and operator != "*" and operator != "/":
print("지원하지 않는 연산자입니다.")
continue
first = float(input("첫 번째 수: "))
second = float(input("두 번째 수: "))
if operator == "+":
print("결과:", first + second)
elif operator == "-":
print("결과:", first - second)
elif operator == "*":
print("결과:", first * second)
elif second == 0:
print("0으로 나눌 수 없습니다.")
else:
print("결과:", first / second)

다음 입력은 덧셈과 나눗셈을 차례로 수행한 후 종료합니다. 각 줄을 해당 입력 요청에 맞춰 입력합니다.
+
8
2
/
9
3
q
예상되는 계산 결과와 종료 메시지는 다음과 같습니다. 직접 입력할 때는 입력한 값도 터미널에 함께 보입니다.
결과: 10.0
결과: 3.0
계산기를 종료합니다.
코드가 반복되는 순서
반복이 시작되면 먼저 연산자를 입력받습니다. q이면 숫자를 묻기 전에 종료 메시지를 출력하고 break로 반복문을 빠져나갑니다. 따라서 종료할 때 숫자를 추가로 입력할 필요가 없습니다.
사칙연산 기호가 아닌 다른 입력은 안내한 뒤 continue를 만납니다. continue는 현재 반복에서 남은 코드를 건너뛰고 다음 반복을 시작하므로 연산자를 다시 묻습니다. 지원하는 연산자라면 두 수를 입력받고 조건문에서 해당 계산을 수행합니다.
예를 들어 첫 번째 반복에서는 8과 2가 실수 8.0과 2.0으로 변환되어 10.0이 출력됩니다. 계산이 끝나면 반복문의 처음으로 돌아갑니다. 두 번째 반복에서는 9.0 / 3.0의 결과인 3.0이 나오고, 다음 반복에서 q를 입력하면 종료합니다.
흔한 실수와 경계 조건
- 반복할 입력과 계산 코드가
while안에 들여쓰기되어야 매번 다시 실행됩니다. 종료 메시지와break도q를 검사하는if안에 있어야 합니다. - 종료 명령은 소문자
q만 인식합니다.Q나 공백을 포함한 입력은 지원하지 않는 연산자로 처리합니다. /를 선택하고 두 번째 수에0을 입력하면 나눗셈을 실행하지 않고 안내한 뒤 다음 계산으로 넘어갑니다.- 숫자 입력에
abc처럼float()로 변환할 수 없는 값을 넣으면ValueError가 발생하며 프로그램이 중단됩니다. 잘못된 숫자를 처리하는 방법은 다음 강의에서 배웁니다.
연습문제와 풀이
연산자에 ?를 입력한 뒤 q를 입력하면 어떤 일이 일어날까요? 숫자를 입력해야 하는지도 생각해 보세요.
?는 지원하는 연산자가 아니므로 지원하지 않는 연산자입니다.가 출력됩니다. 이어서 continue가 숫자 입력 부분을 건너뛰고 연산자를 다시 묻습니다. 이때 q를 입력하면 계산기를 종료합니다.가 출력되고 반복이 끝납니다. 두 입력 모두 숫자를 요구하지 않습니다.
CHECK THE SOURCE
참고한 공식 문서
- Python 3.12 공식 문서 — First Steps Towards Programming ↗
- Python 3.12 공식 문서 — break and continue Statements ↗
기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.