Python

[Python / 기초] 파이썬 연산자 - 산술연산자, 비교연산자, 논리연산자, 복합연산자, 형변환

씨주 2024. 1. 12. 07:28

📍 연산자

✅ 산술연산자

a = 2
b = 3

print(a + b) # 5
print(a - b) # -1
print(a * b) # 6
print(a / b) # 0.666666666
# 제곱
print(a ** b) # 8
# 나눈 몫
print(a // b) # 0
# 나눈 나머지
print(a % b) # 2

# (나눈 몫, 나눈 나머지)
print(divmod(a, b)) # (0, 2)

 

✅ 비교연산자

a = 5
b = 10

print(a > b) # False
print(a < b) # True
print(a >= b) # False
print(a <= b) # True
print(a == b) # False
print(a != b) # True
# 대소문자 구분
print('hi' == 'hi') # True
print('Hi' == 'hi') # False

 

✅ 논리연산자

  • and : 양쪽 모두 True일 때, True를 반환
  • or : 양쪽 모두 False일 때, False를 반환
  • Not : 반대값을 출력
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
a = True
print(not a) # False

 

✔️ 단축평가

# 단축평가(and)
print(3 and 5) # True and True일 때 True를 출력하므로 뒤값인 5 출력
print(3 and 0) # True and False일 때 False를 출력하므로 뒤값인 0 출력
print(0 and 5) # False and True일 때 False를 출력하므로 False(0) 출력
print(0 and 0) # False and False일 때 False를 출력하므로 False(0) 출력
# 단축평가(or)
print(3 or 5) # True or True일 때 True를 출력하므로 앞값인 3 출력
print(3 or 0) # True or False일 때 True를 출력하므로 앞값인 3 출력
print(0 or 5) # False or True일 때 True를 출력하므로 True인 5 출력
print(0 or 0) # False or False일 때 False를 출력하므로 False(0) 출력

 

✅ 복합연산자

a = 2
b = 3

# a = a + b
a += b 
print(a) # 5

# a = a - b
a -= b 
print(a) # 2

# a = a * b
a *= b 
print(a) # 6

# a = a / b
a /= b 
print(a) # 2.0

# a = a // b
a //= b 
print(a) # 0.0

# a = a % b
a %= b 
print(a) # 0.0

# a = a ** b
a **= b 
print(a) # 0.0

 

✅ 기타연산자

✔️ concatenation

a = 'hi'
b = 'hello'
a + b # 'hihello'
a = [1, 2, 3]
b = [9, 8, 7]
a + b # [1, 2, 3, 9, 8, 7]
1 + '1' # 타입 불일치로 error
더보기
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[18], line 1
----> 1 1 + '1'

TypeError: unsupported operand type(s) for +: 'int' and 'str'

✔️ containment

print(1 in [1, 2, 3]) # True
print(100 in [1, 2, 3]) # False

 

✅ 연산자 우선순위

  1. ()를 통해 그룹
  2. **
  3. 산술연산자(*, /)
  4. 산술연산자(+, -)
  5. 비교연산자, is, in
  6. not
  7. and, or
print(-3 ** 4) # -81
print((-3) ** 4) # 81

 

📍 형변환

✅ 암시적 형변환

a = True # 숫자 1 취급가능
b = False # 숫자 0 취급가능
c = 1

print(a + c) # 2
print(b + c) # 1
int_num = 3
float_num = 3.3
complex_num = 3 + 3j

print(int_num + float_num) # 3.0 + 3.3 출력값 6.3
print(int_num + complex_num) # (3 + 3) + (0j + 3j) 출력값 (6+3j)

 

✅ 명시적 형변환

a = 1
b = '번'
a + b # 타입 불일치로 error
더보기
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[24], line 3
      1 a = 1
      2 b = '번'
----> 3 a + b

TypeError: unsupported operand type(s) for +: 'int' and 'str'
print(str(a) + b) # 1번
a = '100'
print(type(a)) # str
print(type(int(a))) # int
a = '3.3'
# type(int(a))는 error 발생
type(float(a)) # float
a = 1
b = 0
c = 100 # 1 이상이면 True

print(bool(a)) # True
print(bool(b)) # False
print(bool(c)) # True
# 비어있는 것은 0
print(bool('')) # False
# 글자가 있으면 1 이상 취급
print(bool('a')) # True
print(bool([])) # False
print(bool([1, 2, 3])) # True