
하나 이상의 피연산자를 입력 받아 특정 연산을 하는 것
(a=30, b=7을 가정)
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| + | 덧셈 | a + b | 37 |
| - | 뺄셈 | a - b | 22 |
| * | 곱셈 | a * b | 210 |
| / | 나눗셈(float) | a / b | 4.38571428571 |
| % | 나머지 | a % b | 2 |
| // | 몫 | a // b | 4 |
| ** | 제곱 | a ** 2 | 900 |
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| == | 같음 | 3 == 5 | False |
| != | 다름 | 'hi' != 'hello' | True |
| > | 크다 | 12 > 12 | False |
| < | 작다 | 13 < 11 | False |
| >= | 이상 | 15 >= 15 | True |
| <= | 이하 | -3 <= 12 | True |
(a = 7, b = 3라고 가정)
| 연산자 | 의미 | 예시 | a 값 |
|---|---|---|---|
| = | 좌항에 우항 값을 할당 | a = b | 3 |
| += | 좌항과 우항을 더하고 좌항에 할당 | a += b | 10 |
| -= | 좌항에서 우항을 빼고 좌항에 할당 | a -= b | 4 |
| *= | 좌항과 우항을 곱하고 좌항에 할당 | a *= b | 21 |
| /= | 좌항에서 우항을 나누고 좌항에 할당 | a /= b | 2.333333333333 |
| %= | 좌항에서 우항을 나눈 나머지를 좌항에 할당 | a %= b | 1 |
| **= | 좌항에서 우항 제곱을 한 값을 좌항에 할당 | a **= b | 343 |
| //= | 좌항에서 우항을 나눈 몫을 좌항에 할당 | a //= b | 2 |
(a = 5 (00101), b = 3(00011)이라고 가정)
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| & | 비트 AND, 두 비트 모두 1이어야 1 | a & b | 1(00001) |
| | | 비트 OR, 두 비트 중 하나만 1이어도 1 | a | b | 7(00111) |
| ^ | 비트 XOR, 두 비트가 다르면 1 | a ^ b | 6(00110) |
| ~ | 비트NOT, 1의 보수 연산(단항 연산자) | ~a | -6(11010) |
| << | 좌항을 좌측으로 우항만큼 비트 시프트(*2) | a << 1 | 10(01010) |
| >> | 좌항을 우측으로 우항만큼 비트 시프트(//2) | a >> 1 | 2(00010) |
| 연산자 | 의미 | a | b | 예시 | 결과 |
|---|---|---|---|---|---|
| and | 논리 AND | 4 | 6 | (a == 4) and (b == 6) | True |
| or | 논리 OR | 2 | 10 | (a != 2) or (b == 5) | False |
| not | 논리 NOT | 3 | 0 | not(a == 3) | False |
(a = [1,2,3,4,5])
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| in | 우항 iterable에 좌항이 포함되어 있다 | 4 in b | True |
| not in | 우항 iterable에 좌항이 포함되지 않는다 | 4 not in b | False |
(a = [1,2,3], b = a, c = a.copy())
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| is | 좌항과 우항의 메모리 주소가 같다 | a is c | False |
| is not | 좌항과 우항의 메모리 주소가 다르다 | b is not b | True |
연산자는 우선순위에 따라 계산 된다.
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| is | 좌항과 우항의 메모리 주소가 같다 | a is c | False |
| is not | 좌항과 우항의 메모리 주소가 다르다 | b is not b | True |