연산자란?
코딩을 할 때 수학적 계산, 논리 연산을 해야 될 때가 있다.
파이썬은 다양한 연산자를 제공해 이러한 연산을 수행할 수 있도록 한다.
연산자의 종류
파이썬에서는 다양한 연산자를 제공하는 만큼 연산자의 종류도 다양하다.
다음은 연산자의 종류를 나열한 것이다.
1. 산술 연산자
단순하게 수학적이 계산을 할 수 있는 연산자이다.
# 산술 연산자
add = 2 + 3 # 덧셈
sub = 3 - 2 # 뺄셈
mul = 2 * 3 # 곱셈
div = 5 / 2 # 나눗셈
quo = 23 // 7 # 몫
rem = 7 % 4 # 나머지
power = 2 ** 3 # 거듭제곱
print(add)
print(sub)
print(mul)
print(div)
print(quo)
print(rem)
print(power)
5
1
6
2.5
3
3
8
2. 비교 연산자
수를 비교할 때 사용하는 연산자이며 결과는 논리형으로 반환한다.
# 비교 연산자
print(2 == 3) # 같다
print(2 != 3) # 다르다
print(2 > 3) # 2가 3보다 크다
print(2 < 3) # 2가 3보다 작다
print(2 >= 3) # 2가 3보다 크거나 같다
print(2 <= 3) # 2가 3보다 작거나 같다
False
True
False
True
False
True
3. 논리 연산자
and와 or연산자는 두 논리형 변수를 비교하여 결과를 논리형으로 반환하고 not연산자는 하나의 논리형 변수의 반대 결과를 출력한다.
# and연산자
# 두 논리형 변수가 모두 True일 때 True를 반환하며 나머지 경우는 모두 False를 반환한다.
print(True and True)
print(True and False)
print(False and True)
print(False and False)
True
False
False
False
# or연산자
# 두 논리형 변수 중 하나라도 True일 때 True를 반환하며 나머지 경우는 모두 False를 반환한다.
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
# not연산자
# 하나의 논리형 변수가 주어지면 그 반대의 결과를 출력한다.
print(not True)
print(not False)
False
True
4. 대입 연산자
변수에 값을 할당할 때 사용되는 연산자이다.
# 대입 연산자
a = 7 # a에 7이라는 값을 할당
print(a)
a += 3 # a에 3을 더한 후 a에 재할당, a = a + 3
print(a)
a -= 5 # a에 3을 뺀 후 a에 재할당, a = a - 5
print(a)
a *= 2 # a에 3을 곱한 후 a에 재할당, a = a * 2
print(a)
a /= 3 # a에 3을 나눈 후 a에 재할당, a = a / 3
print(a)
7
10
5
10
3.3333333333333335
5. 멤버십 연산자
주어진 값에 특정 값이 포함되어 있는지 여부를 알려주는 연산자이다.
# 멤버십 연산자
print('a' in 'apple') # apple에 a가 포함되어 있는지 논리형으로 출력
print('c' not in 'banana') # banana에 c가 포함되어 있지 않은지 논리형으로 출력
True
True
6. 식별 연산자
두 객체가 같은 메모리 위치를 가리키는지 알려주는 연산자이다.
# 식별 연산자
a = 10
b = 10
c = 10.0
d = 8
print(a is b)
print(a is c)
print(a is not d)
True
False
True
※ 10과 10.0을 비교한 결과가 False인 이유는 10은 int객체이고 10.0은 float객체이므로 객체가 다르기 때문이다.
7. 비트 연산자
2진수 연산에 사용되는 연산자이다.
# 10진수를 2진수로 변환하기
num1 = 17
num2 = bin(num1) # bin함수를 통해 2진수로의 변환이 가능하다.
print(num2)
0b10001
# 비트 and 연산자
# 두 비트를 각 자리마다 비교해 모두 1일때만 그 자리는 1이 된다.
print(bin(0b10001 & 0b10001))
# 비트 or 연산자
# 두 비트를 각 자리마다 비교해 하나라도 1이면 그 자리는 1이 된다.
print(bin(0b10001 | 0b10001))
# 비트 xor 연산자
# 두 비트를 각 자리마다 비교해 그 자르에 들어갈 수를 같으면 0, 다르면 1로 결정한다.
print(bin(0b10001 ^ 0b10001))
# 비트 not 연산자
# 1이면 0으로 0이면 1로 비트를 뒤집는다.
print(bin(~0b10001))
# 비트 시프트 연산자
# <<은 비트를 오른쪽에 있는 수만큼 왼쪽으로 >>는 오른쪽으로 시프트한다.
print(bin(0b10001 << 2))
print(bin(0b10001 >> 2))
0b10001
0b10001
0b0
-0b10010
0b1000100
0b100
연산자 우선순위
여러 연산자가 하나의 식에 있을 때 파이썬은 다음과 같은 순서로 연산자를 처리한다.
먼저 처리하고 싶은 연산이 있을 시 괄호를 치면 우선적으로 처리한다.
우선순위 | 연산자 | 설명 |
1 | ** | 거듭제곱 |
2 | +x, -x, ~x | 단항 덧셈(양의 부호), 단항 뺄셈(음의 부호), 비트 NOT |
3 | *, /, //, % | 곱셈, 나눗셈, 몫, 나머지 |
4 | +, - | 덧셈, 뺄셈 |
5 | <<, >> | 비트 시프트 |
6 | & | 비트 AND |
7 | ^ | 비트 XOR |
8 | | | 비트 OR |
9 | in, not in, is, is not, <, <=, >, >=, !=, == |
식별 연산자, 멤버십 연산자, 비교 연산자 |
10 | not x | 논리 NOT |
11 | and | 논리 AND |
12 | or | 논리 OR |
13 | if else | 조건부 표현식 |
14 | lambda | 람다 표현식 |
15 | := | 할당 표현식 |
결론
파이썬은 다양한 연산자를 제공하며 그에 따라 다양한 연산이 가능하다.
이러한 연산이 결국 머신러닝 등 다른 심화 과정의 기초가 되기 때문에 꼭 알아두어야 한다.
'Python > Foundation' 카테고리의 다른 글
06강. [Python]튜플 (0) | 2025.02.01 |
---|---|
05강. [Python]리스트 (0) | 2025.02.01 |
03강. [Python]자료형 (1) | 2025.01.31 |
02강. [Python]변수 (0) | 2025.01.31 |
01강. [Python]파이썬의 기본 문법 (0) | 2025.01.31 |