안녕하세요! 지난 시간에는 print() 함수와 input() 함수를 통해 파이썬 프로그램이 사용자와 소통하는 방법을 배웠습니다. 이제 데이터를 화면에 출력하고, 사용자로부터 입력받을 수 있게 되었죠.
이번 시간에는 파이썬에서 데이터를 가지고 다양한 계산, 비교, 논리적 판단을 할 수 있게 해주는 **연산자(Operator)**에 대해 알아보겠습니다. 연산자는 프로그램이 데이터를 처리하고 조작하는 핵심적인 도구입니다.
크게 산술 연산자, 비교 연산자, 논리 연산자 세 가지를 중심으로 살펴보겠습니다.
Part 1: 산술 연산자 (Arithmetic Operators) - 숫자 계산하기
산술 연산자는 숫자를 대상으로 덧셈, 뺄셈, 곱셈, 나눗셈 등 수학적인 계산을 수행할 때 사용됩니다.
+ | 덧셈 | 10 + 5 | 15 |
- | 뺄셈 | 10 - 5 | 5 |
* | 곱셈 | 10 * 5 | 50 |
/ | 나눗셈 | 10 / 5 | 2.0 |
// | 정수 나눗셈 | 10 // 3 | 3 |
% | 나머지 | 10 % 3 | 1 |
** | 거듭제곱 | 2 ** 3 | 8 |
- // (정수 나눗셈): 나눈 결과의 소수점 이하를 버리고 정수 부분만 반환합니다.
- % (나머지): 나눈 후의 나머지를 반환합니다.
예시:
# 파일 이름: arithmetic_operators.py
# 덧셈
result_plus = 10 + 5
print(f"10 + 5 = {result_plus}")
# 뺄셈
result_minus = 10 - 5
print(f"10 - 5 = {result_minus}")
# 곱셈
result_multiply = 10 * 5
print(f"10 * 5 = {result_multiply}")
# 나눗셈 (결과는 항상 실수형 float)
result_divide = 10 / 3
print(f"10 / 3 = {result_divide}")
# 정수 나눗셈 (결과는 정수형 int)
result_floor_divide = 10 // 3
print(f"10 // 3 = {result_floor_divide}")
# 나머지 연산
result_modulo = 10 % 3
print(f"10 % 3 = {result_modulo}")
# 거듭제곱
result_power = 2 ** 3
print(f"2 ** 3 = {result_power}")
# 변수를 이용한 연산
num1 = 20
num2 = 7
sum_nums = num1 + num2
product_nums = num1 * num2
print(f"변수 {num1}과 {num2}의 합: {sum_nums}")
print(f"변수 {num1}과 {num2}의 곱: {product_nums}")
Part 2: 비교 연산자 (Comparison Operators) - 값 비교하기
비교 연산자는 두 값의 크기나 같음 여부를 비교할 때 사용됩니다. 비교 연산의 결과는 항상 불린(Boolean) 자료형, 즉 True 또는 False 입니다. (이전 1-5 포스팅에서 배운 불린 자료형 기억나시죠?)
== | 값이 같다 | 10 == 10 | True |
!= | 값이 다르다 | 10 != 5 | True |
> | 왼쪽이 크다 | 10 > 5 | True |
< | 왼쪽이 작다 | 10 < 5 | False |
>= | 왼쪽이 크거나 같다 | 10 >= 10 | True |
<= | 왼쪽이 작거나 같다 | 10 <= 5 | False |
예시:
# 파일 이름: comparison_operators.py
# 같음 비교 (==)
print(f"10 == 10 결과: {10 == 10}") # True
print(f"5 == 10 결과: {5 == 10}") # False
print(f"'Python' == 'Python' 결과: {'Python' == 'Python'}") # True
print(f"'Python' == 'python' 결과: {'Python' == 'python'}") # False (대소문자 구분)
# 다름 비교 (!=)
print(f"10 != 5 결과: {10 != 5}") # True
print(f"10 != 10 결과: {10 != 10}") # False
# 크다/작다 (>, <)
print(f"20 > 10 결과: {20 > 10}") # True
print(f"20 < 10 결과: {20 < 10}") # False
# 크거나 같다/작거나 같다 (>=, <=)
print(f"10 >= 10 결과: {10 >= 10}") # True
print(f"10 >= 5 결과: {10 >= 5}") # True
print(f"5 <= 10 결과: {5 <= 10}") # True
print(f"10 <= 5 결과: {10 <= 5}") # False
# 변수를 이용한 비교
score = 85
pass_score = 60
print(f"점수({score})가 합격점({pass_score})보다 크거나 같은가? {score >= pass_score}")
Part 3: 논리 연산자 (Logical Operators) - 조건 조합하기
논리 연산자는 여러 개의 불린 값(True/False)이나 비교 결과들을 조합하여 하나의 불린 값을 만들어낼 때 사용됩니다.
and | 그리고 (모두 참일 때만 참) | True and True | True |
or | 또는 (하나라도 참이면 참) | True or False | True |
not | 아니다 (반대) | not True | False |
1. and 연산자
- 두 조건이 모두 참(True)일 때만 True를 반환합니다.
- 둘 중 하나라도 거짓(False)이면 False를 반환합니다.
2. or 연산자
- 두 조건 중 하나라도 참(True)이면 True를 반환합니다.
- 두 조건이 모두 거짓(False)일 때만 False를 반환합니다.
3. not 연산자
- 현재 불린 값의 논리적인 반대를 반환합니다. True는 False로, False는 True로 바꿉니다.
예시:
# 파일 이름: logical_operators.py
# and 연산자
print(f"True and True: {True and True}") # True
print(f"True and False: {True and False}") # False
print(f"False and True: {False and True}") # False
print(f"False and False: {False and False}") # False
# or 연산자
print(f"True or True: {True or True}") # True
print(f"True or False: {True or False}") # True
print(f"False or True: {False or True}") # True
print(f"False or False: {False or False}") # False
# not 연산자
print(f"not True: {not True}") # False
print(f"not False: {not False}") # True
# 비교 연산자와 논리 연산자 조합
age = 25
has_license = True
# 20세 이상이고 면허가 있다면
can_drive = (age >= 20) and has_license
print(f"운전할 수 있는가? ({age}세 이상 AND 면허 소지): {can_drive}") # True
# 100점 이상이거나 0점 이하인가?
score = 95
is_invalid_score = (score > 100) or (score < 0)
print(f"점수({score})가 유효하지 않은가? (100 초과 OR 0 미만): {is_invalid_score}") # False
# 성인이 아닌가?
is_adult = False
print(f"성인이 아닌가? (not 성인): {not is_adult}") # True

연산자 우선순위 (간단히)
여러 연산자가 한 줄에 있을 때는 어떤 연산이 먼저 수행될까요? 수학과 비슷하게 연산자마다 우선순위가 있습니다.
- 괄호 ()
- 거듭제곱 **
- 단항 연산자 (-, +) (예: -5)
- 곱셈 *, 나눗셈 /, 정수 나눗셈 //, 나머지 %
- 덧셈 +, 뺄셈 -
- 비교 연산자 ==, !=, >, <, >=, <=
- 논리 연산자 not, and, or
우선순위가 헷갈릴 때는 괄호 ()를 사용하여 명확하게 연산 순서를 지정해주는 것이 좋습니다.
예시:
# 우선순위 예시
# 2 + 3 * 4 -> 3 * 4 먼저 계산
result1 = 2 + 3 * 4
print(f"2 + 3 * 4 = {result1}") # 결과: 14
# 괄호를 사용하여 순서 변경
# (2 + 3) * 4 -> 2 + 3 먼저 계산
result2 = (2 + 3) * 4
print(f"(2 + 3) * 4 = {result2}") # 결과: 20
마무리하며
이번 시간에는 파이썬의 가장 기본적인 연산자인 산술 연산자, 비교 연산자, 논리 연산자에 대해 자세히 알아보았습니다. 이 연산자들은 여러분이 데이터를 계산하고, 조건을 판단하며, 복잡한 로직을 구성하는 데 필수적인 도구입니다.
이제 여러분은 단순한 출력과 입력뿐만 아니라, 데이터에 대한 기본적인 조작과 판단까지 프로그램으로 구현할 수 있게 되었습니다.
다음 포스팅에서는 이 연산자들을 활용하여 프로그램의 흐름을 제어하는 **조건문(if, elif, else)**에 대해 알아보겠습니다.
궁금한 점이 있다면 언제든지 질문해주세요! 다음 포스팅에서 만나요!
'Python' 카테고리의 다른 글
2-1. if, elif, else 조건문 (0) | 2025.06.20 |
---|---|
1-8. 파이썬에서 오류가 나는 이유와 에러 메시지 읽기 (0) | 2025.06.20 |
1-6. 사용자 입력과 출력 (input, print) (0) | 2025.06.17 |
1-5. 변수와 자료형 (숫자, 문자열, 불린) (2) | 2025.06.08 |
1-4. 주석, 코드 스타일, 들여쓰기 개념 (0) | 2025.06.08 |