본문 바로가기
파이썬/파이썬 기초 문법

파이썬의 연산자

by 쵠몽 2024. 9. 26.

1. 산술 연산자

+ : 더하기
- : 빼기
* : 곱하기
/ : 나누기
//: 몫 (정수 나누기)
% : 나머지
**: 지수 (거듭제곱)
num1 = 10
num2 = 3

print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 // num2)
print(num1 % num2)
print(num1 ** num2)

 

 

2. 비교 연산자

==: 동등
!=: 동등하지 않음
< : 작다
<=: 작거나 같다
> : 크다
>=: 크거나 같다
num1 = 10
num2 = 3

print(num1 > num2)
print(num1 < num2)
print(num1 >= num2)
print(num1 <= num2)
print(num1 == num2)
print(num1 != num2)

 

 

3. 할당 연산자

= : 할당
+= : 더하기 후 할당
-= : 빼기 후 할당
*= : 곱하기 후 할당
/= : 나누기 후 할당
//=: 몫 후 할당
%= : 나머지 후 할당
**=: 지수 후 할당
num = 10

num += 1      # num = num + 1
print(num)
num -= 1
print(num)
num *= 10
print(num)
num /= 10
print(num)
num %= 2
print(num)

 

 

4. 비트 연산자

& : 비트 단위 AND
| : 비트 단위 OR
^ : 비트 단위 XOR
~ : 비트 단위 NOT
<< : 왼쪽 시프트
>> : 오른쪽 시프트

 

- &(AND) 계산 방법: 둘 다 1일 때 ➡ 1 나머지 ➡ 0

32 16 8 4 2 1 십진수
1 1 1 1 0 0 60
0 0 1 1 0 1 13
0 0 1 1 0 0 12

 

- |(OR) 계산 방법: 둘 중 하나라도 1일 때 ➡ 1 그 외 ➡ 0

32 16 8 4 2 1 십진수
1 1 1 1 0 0 60
0 0 1 1 0 1 13
1 1 1 1 0 1 61

 

- ^(XOR) 계산 방법: 둘이 다르면 ➡ 1 같으면 ➡ 0

32 16 8 4 2 1 십진수
1 1 1 1 0 0 60
0 0 1 1 0 1 13
1 1 0 0 0 1 49

 

num1 = 60   # 111100 -> 00111100
num2 = 13   # 001101

print(num1 & num2)
print(num1 | num2)
print(num1 ^ num2)
print(~num1)      # 11000011, 2의 보수로 음수를 구함. 비트를 모두 뒤집은 후 1을 더함
print(num1 << 2)  # 111100 + 00 = 11110000
print(num1 >> 2)  # 111100 - 00 = 1111

 

 

5. 논리 연산자

파이썬에서 논리 연산자는 다른 언어와는 달리 연산의 결과로 항상 True 또는 False만 반환하지 않고 마지막으로 평가된 연산자의 값을 반환한다.

 

<파이썬에서 불린(Boolean)으로 평가되는 값>

 

(참고) bool() : Boolean 값으로 변환해주는 함수

# Boolean 값으로 변환해주는 함수
print(bool(0))
print(bool(''))
print(bool(1000))
print(bool('Hello'))



(1)  True로 평가되는 값

  • Boolean: True
  • 0이 아닌 숫자: 예) -1, 1, 2.5 등
  • 문자열과 바이트 문자열: 예) 'Hello', b'hello'
  • 모든 리스트, 튜플, 세트, 딕셔너리(단, 빈 컨테이너가 아닌 형태)

 

(2) False로 평가되는 값

  • Boolean: False
  • 숫자: 0
  • 문자열: 빈 문자열 '' 및 빈 바이트 문자열 b''
  • 리스트, 튜플, 세트, 딕셔너리의 빈 값
  • None

 

and: 논리 AND
or : 논리 OR
not: 논리 NOT

 

 

num1 = 10
num2 = 3
result1 = num1 > num2   # True
result2 = num1 == num2  # False

# and: 둘 다 True면 결과 True
print(result1 and result2)
# or: 둘 중의 하나가 True면 결과 True
print(result1 or result2)
# not: 식의 값을 반대 부호로 변환
print(not result1)

 

print(True and False)
print(True and True)
print(True or False)
print(not False)

 

print(False and 10)
print(True and 10)
print(True and 0)
print(0 and True)
print(0 and True)
print(1 and 10)

 

print(True or 10)
print(10 or False)
print(False or 3)
print('Hello' or 3)
print('' or 'Hello')

 

print(not 0)
print(not 'Hello')
print(not '')