Windows · Python 3.12.4. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.
이 글의 순서 5개 단락
앞 강의에서는 두 수의 사칙연산 결과를 모두 출력했습니다. 이번에는 연산자 하나를 입력받아 그에 해당하는 계산만 수행합니다. 예제는 Python 3.12를 기준으로 합니다.
조건문으로 실행할 계산 고르기
조건문은 조건이 맞을 때 실행할 코드를 정합니다. if로 첫 조건을 검사하고, 맞지 않으면 elif로 다음 조건을 차례로 검사합니다. 어느 조건에도 맞지 않으면 else의 코드를 실행합니다. 한 조건이 맞으면 같은 조건문에 이어진 나머지 elif와 else는 실행하지 않습니다.
operator == "+"에서 ==는 두 값이 같은지 비교합니다. 변수에 값을 저장하는 =와 구별하세요. 각 조건 끝에는 콜론(:)을 쓰고, 그 조건에 속하는 코드는 같은 칸 수만큼 들여씁니다. 자세한 문법은 Python 3.12 공식 문서의 if 문을 참고하세요.
선택한 연산 실행하기
두 수와 연산자를 차례로 입력받습니다. 숫자는 이전 강의처럼 float()로 실수로 바꾸고, 연산자는 입력된 문자열 그대로 비교합니다.
first = float(input("첫 번째 수: "))
second = float(input("두 번째 수: "))
operator = input("연산자 (+, -, *, /): ")
if operator == "+":
print("결과:", first + second)
elif operator == "-":
print("결과:", first - second)
elif operator == "*":
print("결과:", first * second)
elif operator == "/":
print("결과:", first / second)
else:
print("지원하지 않는 연산자입니다.")

예를 들어 첫 번째 수에 8, 두 번째 수에 3, 연산자에 *를 입력하면 예상 결과는 결과: 24.0입니다. 터미널에서는 입력한 값도 입력 안내 뒤에 보입니다.
첫 번째 수: 8
두 번째 수: 3
연산자 (+, -, *, /): *
결과: 24.0
operator가 문자열 "*"와 같으므로 곱셈 분기만 실행됩니다. 두 수를 float()로 변환했기 때문에 결과는 24가 아닌 24.0으로 표시됩니다. 입력 안내와 입력값을 다루는 방법은 Python 3.12 공식 문서의 input()에서도 확인할 수 있습니다.
코드의 흐름 이해하기
프로그램은 먼저 숫자 두 개를 받은 뒤 연산자를 받습니다. if에서 덧셈을 확인하고, 일치하지 않으면 elif에서 뺄셈, 곱셈, 나눗셈을 순서대로 확인합니다. 예를 들어 -를 입력하면 두 번째 분기에서 first - second만 계산해 출력합니다.
네 연산자 중 어느 것도 입력하지 않았다면 else에서 지원하지 않는 연산자라는 안내를 출력합니다. 이 경우 사칙연산은 실행되지 않습니다.
흔한 실수와 경계 조건
- 조건에
operator = "+"를 쓰면 비교가 아닙니다. 같은지 확인할 때는==를 사용하세요. if와elif,else끝의 콜론이나 아래 코드의 들여쓰기를 빠뜨리면 오류가 납니다. 각print()는 해당 조건보다 한 단계 들여씁니다.- 연산자는 정확히 비교합니다. 예를 들어
x, 빈 입력, 앞뒤에 공백이 붙은*는"*"와 다르므로 지원하지 않는 연산자로 안내합니다. /를 선택하고 두 번째 수에0을 입력하면ZeroDivisionError가 발생합니다. 이번 예제에서 나눗셈을 시도할 때는 0이 아닌 두 번째 수를 사용하세요. 이 상황을 안내하는 방법은 다음 강의에서 다룹니다.- 숫자 자리에
abc처럼 숫자로 바꿀 수 없는 값을 입력하면 연산자를 묻기 전에float()에서ValueError가 발생합니다. 잘못된 숫자 입력 처리는 8강에서 추가합니다.
연습: 지원하지 않는 연산자 살펴보기
첫 번째 수에 8, 두 번째 수에 3, 연산자에 %를 입력하면 어떤 문장이 출력될까요? 계산 결과가 나오는지도 생각해 보세요.
풀이: %는 이 프로그램이 비교하는 +, -, *, / 중 어느 것과도 같지 않습니다. 따라서 else가 실행되어 지원하지 않는 연산자입니다.가 출력되고 계산 결과는 출력되지 않습니다. Python에 % 연산자가 있더라도 이 계산기에 해당 분기를 추가하지 않았기 때문입니다.
CHECK THE SOURCE
참고한 공식 문서
기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.