6.1 연산자란?
연산자(opator)는 값을 계산하거나 비교하기 위해 사용하는 기호 또는 키워드입니다.
Python은 다양한 연산자를 제공하며, 연산자에 따라 수행하는 동작이 달라집니다.
6.2 산술 연산자(Arithmetic Operators)
| 연산자 | 설명 | 예시 | 결과 |
|---|
+ | 덧셈 | 3 + 2 | 5 |
- | 뺄셈 | 5 - 2 | 3 |
* | 곱셈 | 4 * 2 | 8 |
/ | 나눗셈 (실수) | 5 / 2 | 2.5 |
// | 정수 나눗셈 | 5 // 2 | 2 |
% | 나머지 | 5 % 2 | 1 |
** | 거듭제곱 | 2 ** 3 | 8 |
6.3 비교 연산자(Comparison Operators)
| 연산자 | 설명 | 예시 | 결과 |
|---|
== | 같음 | 3 == 3 | True |
!= | 다름 | 3 != 2 | True |
< | 작다 | 2 < 3 | True |
<= | 작거나 같다 | 3 <= 3 | True |
> | 크다 | 5 > 3 | True |
>= | 크거나 같다 | 5 >= 7 | False |
6.4 논리 연산자(Logical Operators)
| 연산자 | 설명 | 예시 | 결과 |
|---|
and | 모두 참일 때 | True and True | True |
or | 둘 중 하나 참 | False or True | True |
not | 부정 | not True | False |
6.5 비트 연산자(Bitwise Operators)
| 연산자 | 설명 | 예시 | 결과 | | |
|---|
& | 비트 AND | 5 & 3 → 101 & 011 → 001 → 1 | | | |
| ` | ` | 비트 OR | `5 | 3→101 | 011→111→7` |
^ | 비트 XOR | 5 ^ 3 → 101 ^ 011 → 110 → 6 | | | |
~ | 비트 NOT | ~5 → -6 (보수 연산) | | | |
<< | 왼쪽 시프트 | 5 << 1 → 10 | | | |
>> | 오른쪽 시프트 | 5 >> 1 → 2 | | | |
6.6 할당 연산자(Assignment Operators)
| 연산자 | 예시 | 동작 |
|---|
= | x = 5 | 오른쪽 값을 왼쪽에 대입 |
+= | x += 1 | x = x + 1과 같음 |
-= | x -= 1 | x = x - 1 |
*= | x *= 2 | x = x * 2 |
/= | x /= 3 | x = x / 3 |
//= | x //= 2 | x = x // 2 |
%= | x %= 4 | x = x % 4 |
**= | x **= 2 | x = x ** 2 |
6.7 항등 연산자(Identiry Operators)
| 연산자 | 설명 | 예시 | 결과 |
|---|
is | 객체 주소(참조)가 같으면 True | a is b | True / False |
is not | 객체 주소가 다르면 True | a is not b | True / False |
6.8 연산자 우선순위(Operator Precedence)
Python에서는 여러 연산자가 한 줄에 있을 경우 우선순위(priority)에 따라 계산됩니다.
| 우선순위 | 연산자 | |
| ---- | -------------------------------------------------- | -- |
| 1 | () 괄호 | |
| 2 | ** (거듭제곱) | |
| 3 | +x, -x, ~x (단항 연산) | |
| 4 | *, /, //, % | |
| 5 | +, - | |
| 6 | <<, >> | |
| 7 | & | |
| 8 | ^ | |
| 9 | ` | ` |
| 10 | 비교: ==, !=, <, >, <=, >=, is, in 등 | |
| 11 | not | |
| 12 | and | |
| 13 | or | |
| 14 | =, +=, -= 등 (할당) | |
6.9 단축 평가(Short-circuit Evaluation)
Python의 논리 연산자 and,or는 왼쪽 피연산자에 따라 오른쪽을 평가하지 않을 수 있습니다.
- and: 왼쪽이 False면, 전체 결과는 무조건 False -> 오른쪽 평가 생략
- or: 왼쪽이 True면, 전체 결과는 무조건 True -> 오른쪽 평가 생략
Python
def check():
print("check() 호출됨")
return True
print(False and check()) #check() 호출되지 않음
print(True or check()) #check() 호출되지 않음
마무리
이번 7편에서는 Python의 다양한 연산자와 그 우선순위, 평가 방식까지 상세히 다뤄보았습니다.
다음 편에서는 조건문과 반복문 제어 흐름에 대해서 학습해 보겠습니다.