파이썬 교육 챕터 13 연산자의 종류와 활용 1

연산자(Operator)의 종류와 활용 (1): 산술, 비교 연산자

1. 서론: 데이터에 생명을 불어넣는 연산자

프로그래밍은 데이터를 다루는 예술이며, 이 데이터를 의미 있는 정보로 변환하고 조작하는 데 필수적인 도구가 바로 ‘연산자(Operator)’입니다. 연산자는 하나 이상의 피연산자(Operand)에 대해 특정 연산을 수행하고 결과를 반환하는 기호나 키워드를 의미합니다. 예를 들어, 10 + 5라는 식에서 +는 연산자이고, 105는 피연산자입니다. 우리는 이미 숫자 챕터에서 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 기본적인 산술 연산자를 사용해 보았고, 불리언 챕터에서는 비교 연산자를 통해 True 또는 False 값을 얻는 방법을 배웠습니다. 이 챕터에서는 파이썬에서 제공하는 다양한 연산자들을 체계적으로 분류하고, 그중에서도 가장 기본적이고 자주 사용되는 ‘산술 연산자’와 ‘비교 연산자’에 대해 깊이 있게 탐구해 보겠습니다. 연산자를 자유자재로 활용하는 능력은 여러분의 파이썬 코드를 더욱 강력하고 유연하게 만들 것입니다.

2. 산술 연산자 (Arithmetic Operators): 숫자를 계산하다

산술 연산자는 숫자 데이터를 대상으로 수학적인 계산을 수행하는 데 사용됩니다. 우리는 이미 기본적인 사칙연산자를 살펴보았지만, 여기서는 좀 더 자세히 다루고 추가적인 연산자들도 알아보겠습니다.

연산자 설명 예시 결과
+ 덧셈 10 + 3 13
- 뺄셈 10 - 3 7
* 곱셈 10 * 3 30
/ 나눗셈 10 / 3 3.333...
// 정수 나눗셈 10 // 3 3
% 나머지 10 % 3 1
** 거듭제곱 2 ** 3 8

예시 코드:

num1 = 15
num2 = 4

# 덧셈
sum_result = num1 + num2
print(f"덧셈: {num1} + {num2} = {sum_result}") # 출력: 덧셈: 15 + 4 = 19

# 뺄셈
sub_result = num1 - num2
print(f"뺄셈: {num1} - {num2} = {sub_result}") # 출력: 뺄셈: 15 - 4 = 11

# 곱셈
mul_result = num1 * num2
print(f"곱셈: {num1} * {num2} = {mul_result}") # 출력: 곱셈: 15 * 4 = 60

# 나눗셈 (결과는 항상 실수형)
div_result = num1 / num2
print(f"나눗셈: {num1} / {num2} = {div_result}") # 출력: 나눗셈: 15 / 4 = 3.75

# 정수 나눗셈 (몫만 취함, 결과는 정수형)
floor_div_result = num1 // num2
print(f"정수 나눗셈: {num1} // {num2} = {floor_div_result}") # 출력: 정수 나눗셈: 15 // 4 = 3

# 나머지 연산
mod_result = num1 % num2
print(f"나머지: {num1} % {num2} = {mod_result}") # 출력: 나머지: 15 % 4 = 3

# 거듭제곱
pow_result = num1 ** 2 # 15의 2제곱
print(f"거듭제곱: {num1} ** 2 = {pow_result}") # 출력: 거듭제곱: 15 ** 2 = 225

pow_result2 = 2 ** 5 # 2의 5제곱
print(f"거듭제곱: 2 ** 5 = {pow_result2}") # 출력: 거듭제곱: 2 ** 5 = 32

2.1. 연산자 우선순위 (복습)

산술 연산자에도 수학에서와 동일한 우선순위가 적용됩니다.

  1. 괄호 ()
  2. 거듭제곱 **
  3. 곱셈 *, 나눗셈 /, 정수 나눗셈 //, 나머지 % (왼쪽에서 오른쪽으로)
  4. 덧셈 +, 뺄셈 - (왼쪽에서 오른쪽으로)
calc_result = 5 + 3 * 2 ** 3 / 4 - 1
# 1. 2 ** 3 = 8
# 2. 3 * 8 = 24
# 3. 24 / 4 = 6.0
# 4. 5 + 6.0 = 11.0
# 5. 11.0 - 1 = 10.0
print(calc_result) # 출력: 10.0

# 괄호를 사용한 우선순위 변경
calc_result_paren = (5 + 3) * 2 ** (3 / 4) - 1
# 1. 3 / 4 = 0.75
# 2. 2 ** 0.75 = 1.68179... (약 1.68)
# 3. (5 + 3) = 8
# 4. 8 * 1.68179... = 13.4543...
# 5. 13.4543... - 1 = 12.4543...
print(calc_result_paren) # 출력: 12.45430764890004

3. 비교 연산자 (Comparison Operators): 값들을 비교하다

비교 연산자는 두 값의 관계를 비교하여 True 또는 False의 불리언 값을 반환합니다. 이 연산자들은 조건문(if 문)에서 프로그램의 흐름을 제어하는 데 핵심적인 역할을 합니다.

연산자 설명 예시 결과
== 같다 a == b True (a와 b가 같으면)
!= 같지 않다 a != b True (a와 b가 다르면)
> 크다 a > b True (a가 b보다 크면)
< 작다 a < b True (a가 b보다 작으면)
>= 크거나 같다 a >= b True (a가 b보다 크거나 같으면)
<= 작거나 같다 a <= b True (a가 b보다 작거나 같으면)

예시 코드:

x = 10
y = 20
z = 10

# 동등 비교 (Equal to)
print(f"x == y: {x == y}") # 출력: x == y: False
print(f"x == z: {x == z}") # 출력: x == z: True

# 부등 비교 (Not equal to)
print(f"x != y: {x != y}") # 출력: x != y: True
print(f"x != z: {x != z}") # 출력: x != z: False

# 크다 (Greater than)
print(f"x > y: {x > y}") # 출력: x > y: False
print(f"y > x: {y > x}") # 출력: y > x: True

# 작다 (Less than)
print(f"x < y: {x < y}") # 출력: x < y: True
print(f"y < x: {y < x}") # 출력: y < x: False

# 크거나 같다 (Greater than or equal to)
print(f"x >= y: {x >= y}") # 출력: x >= y: False
print(f"x >= z: {x >= z}") # 출력: x >= z: True

# 작거나 같다 (Less than or equal to)
print(f"x <= y: {x <= y}") # 출력: x <= y: True
print(f"x <= z: {x <= z}") # 출력: x <= z: True

3.1. 문자열 비교

문자열도 비교 연산자를 사용하여 비교할 수 있습니다. 문자열 비교는 알파벳 순서(사전 순서)를 따릅니다. 대소문자를 구분하며, 아스키(ASCII) 또는 유니코드(Unicode) 값에 따라 비교됩니다.

str1 = "apple"
str2 = "banana"
str3 = "Apple"

print(f"str1 == str2: {str1 == str2}") # 출력: str1 == str2: False
print(f"str1 < str2: {str1 < str2}") # 출력: str1 < str2: True ('apple'이 'banana'보다 사전적으로 앞섬)
print(f"str1 == str3: {str1 == str3}") # 출력: str1 == str3: False (대소문자 구분)
print(f"str1 > str3: {str1 > str3}") # 출력: str1 > str3: True ('a'가 'A'보다 아스키 값이 큼)

3.2. 체인 비교 (Chained Comparisons)

파이썬은 여러 비교 연산자를 연결하여 사용할 수 있는 ‘체인 비교’ 기능을 제공합니다. 이는 수학적 표현과 유사하여 가독성이 매우 좋습니다.

age = 25

# 20 <= age < 30 와 동일
if 20 <= age < 30:
 print("당신은 20대입니다.") # 출력: 당신은 20대입니다.

score = 85
# 70 < score <= 90 와 동일
if 70 < score <= 90:
 print("점수가 양호합니다.") # 출력: 점수가 양호합니다.

a < b < ca < b and b < c와 동일한 의미를 가집니다. 이는 코드를 더 간결하게 만들어 줍니다.

4. 결론: 데이터 조작과 논리적 판단의 기초

이 챕터를 통해 여러분은 파이썬의 가장 기본적인 연산자인 산술 연산자와 비교 연산자에 대해 깊이 있게 학습했습니다. 숫자를 더하고 빼고 곱하고 나누는 기본적인 계산부터, 몫과 나머지를 구하고 거듭제곱을 계산하는 방법까지 산술 연산자의 다양한 활용법을 익혔습니다. 또한, 두 값의 관계를 비교하여 True 또는 False를 반환하는 비교 연산자의 중요성과 문자열 비교, 그리고 파이썬만의 편리한 체인 비교 기능까지 살펴보았습니다.

산술 연산자는 데이터를 가공하고 변환하는 데 필수적이며, 비교 연산자는 프로그램이 특정 조건에 따라 다른 동작을 수행하도록 하는 논리적 판단의 기초가 됩니다. 이 두 가지 연산자는 앞으로 배우게 될 조건문(if 문)과 반복문(for, while 문)에서 핵심적인 역할을 할 것입니다.

이제 여러분은 파이썬의 기본적인 데이터 타입인 숫자, 문자열, 불리언을 다루고, 이들을 연산하여 새로운 값을 얻거나 논리적인 판단을 내릴 수 있는 능력을 갖추게 되었습니다. 다음 챕터에서는 할당 연산자, 논리 연산자, 멤버십 연산자, 식별 연산자 등 더 다양한 종류의 연산자들을 탐구하며 파이썬의 연산 능력을 더욱 확장해 보겠습니다. 오늘 배운 연산자들을 활용하여 다양한 계산과 비교를 직접 수행해 보면서 파이썬의 연산 능력에 익숙해지세요!

파이썬 교육 챕터 13 연산자의 종류와 활용 1