1. 연산자
하나 이상의 피연산자를 입력 받아 특정 연산을 하는 것
산술 연산자
(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 |
2. 식
- 연산자, 피연산자, 리턴값으로 구성된 문항
- 리턴 타입에 따라 부울식, 산술식 등으로 나뉜다.
3. 피연산자
- 연산자에 들어가는 입력 값. 식, 함수, 변수, 상수, 리터럴 등이 될 수 있다.