Python 연산자 종합 가이드: 산술, 논리, 비교, 대입, 비트wise, 우선순위
Python에서 논리 연산자란?
Python 논리 연산자는 불리언 표현식을 평가해 True 또는 False 반환. 세 가지 기본 논리 연산자는 and, or, not. if, while 등 조건문으로 흐름 제어에 필수.
이 튜토리얼에서 Python 연산자 전체 스펙트럼 탐구:
- 산술 연산자
- 비교 연산자
- 대입 연산자
- 논리 & 비트와이즈 연산자
- 멤버십 연산자
- 식별 연산자
- 연산자 우선순위
산술 연산자
산술 연산자는 숫자 계산 수행. Python 지원: +(덧셈), -(뺄셈), *(곱셈), /(진나눗셈), //(버림나눗셈), %(나머지), **(거듭제곱). 표현식에서 직접 쓰거나 동적 평가를 위해 내장 eval() 함수로 사용 가능.
예: 단순 덧셈
x = 4
y = 5
print(x + y) # 출력: 9
다른 연산자도 유사: 4 * 5 → 20, 4 / 2 → 2.0, 4 ** 2 → 16.
비교 연산자
비교(관계) 연산자는 두 값 간 관계 평가해 불리언 결과 반환. 포함:
== (같음)
!= (다름)
< (작음)
<= (작거나 같음)
> (큼)
>= (크거나 같음)
예: 두 변수 비교
x = 4
y = 5
print('x > y is', x > y) # 출력: False
대입 연산자
대입 연산자는 변수에 값 저장. 기본 =, 복합 연산자는 연산과 대입 결합: +=, -=, *=, /=, **=.
예: 기본과 복합 대입
num1 = 4
num2 = 5
print('Line 1 - Value of num1:', num1)
print('Line 2 - Value of num2:', num2)
# 복합 덧셈
res = num1 + num2
res += num1
print('Line 3 - Result after res += num1:', res) # 출력: 13
논리와 비트와이즈 연산자
논리 연산자(and, or, not)는 불리언 표현식 평가. 비트와이즈 연산자(&, |, ^, ~, <<, >>)는 비트 수준 조작.
예: 논리 연산
a = True
b = False
print('a and b is', a and b) # 출력: False
print('a or b is', a or b) # 출력: True
print('not a is', not a) # 출력: False
멤버십 연산자
멤버십 연산자는 시퀀스 내 값 존재 테스트: in, not in.
예: 리스트 내 멤버십 확인
x = 4
y = 8
sample_list = [1, 2, 3, 4, 5]
if x in sample_list:
print('Line 1 - x is available in the list')
else:
print('Line 1 - x is not available in the list')
if y not in sample_list:
print('Line 2 - y is not available in the list')
else:
print('Line 2 - y is available in the list')
식별 연산자
식별 연산자는 객체 메모리 주소 비교: is, is not. 값은 같지만 별개 객체인 경우 구별에 필수.
예: 식별 비교
x = 20
y = 20
if x is y:
print('x & y have the same identity')
y = 30
if x is not y:
print('x & y have different identities')
연산자 우선순위
Python은 괄호 없는 표현식 해결 위해 엄격한 우선순위 계층 준수. 최고 우선순위는 거듭제곱(**), 그 다음 단항 연산자, 곱셈/나눗셈/나머지, 덧셈/뺄셈, 비교 연산자, 식별 연산자, 멤버십 연산자, 논리 연산자, 마지막 대입 연산자 순.
괄호로 기본 우선순위 재정의 가능, 표현식 명시적 처리.
예: 우선순위 동작
v = 4
w = 5
x = 8
y = 2
z = (v + w) * x / y
print('Value of (v + w) * x / y is', z) # 출력: 28.0
Python 2 호환성
아래는 Python 2 동등 코드로, 괄호 없는 print 문 사용.
# 산술 연산자
x = 4
y = 5
print x + y
# 비교 연산자
x = 4
y = 5
print 'x > y is', x > y
# 대입 연산자
num1 = 4
num2 = 5
print 'Line 1 - Value of num1:', num1
print 'Line 2 - Value of num2:', num2
# 복합 대입
num1 = 4
num2 = 5
res = num1 + num2
res += num1
print 'Line 3 - Result after res += num1:', res
# 논리 연산자
a = True
b = False
print 'a and b is', a and b
print 'a or b is', a or b
print 'not a is', not a
# 멤버십 연산자
x = 4
y = 8
sample_list = [1, 2, 3, 4, 5]
if x in sample_list:
print 'Line 1 - x is available in the list'
else:
print 'Line 1 - x is not available in the list'
if y not in sample_list:
print 'Line 2 - y is not available in the list'
else:
print 'Line 2 - y is available in the list'
# 식별 연산자
x = 20
y = 20
if x is y:
print 'x & y have the same identity'
y = 30
if x is not y:
print 'x & y have different identities'
# 연산자 우선순위
v = 4
w = 5
x = 8
y = 2
z = (v + w) * x / y
print 'Value of (v + w) * x / y is', z
요약
- 산술 연산자는 숫자 계산 처리.
- 비교 연산자는 관계 진리 판단.
- 대입 연산자는 값 저장; 복합 변형은 연산 결합.
- 논리 연산자는 흐름 제어; 비트와이즈 연산자는 비트 조작.
- 멤버십 연산자는 시퀀스 포함 여부 테스트.
- 식별 연산자는 객체 식별 비교.
- 연산자 우선순위가 평가 순서 결정; 괄호로 재정의 가능.