Python - 2. 연산과 연산자

2025. 1. 19. 18:32프로그래밍 언어/Python

Python에서 연산자(operator)는 데이터를 처리하거나 조작하기 위한 기호 또는 키워드입니다. 이번 섹션에서는 다양한 연산자와 그 동작, 그리고 우선순위에 대해 알아봅니다.


2.1 산술, 비교, 논리 연산자

  1. 산술 연산자: 숫자 데이터를 계산할 때 사용됩니다.
    • + (덧셈)
    • - (뺄셈)
    • * (곱셈)
    • / (나눗셈, 실수)
    • // (나눗셈, 정수)
    • % (나머지)
    • ** (거듭제곱)
    a = 10
    b = 3
    
    print(a + b)  # 덧셈: 13
    print(a - b)  # 뺄셈: 7
    print(a * b)  # 곱셈: 30
    print(a / b)  # 나눗셈(실수): 3.3333333333333335
    print(a // b) # 나눗셈(정수): 3
    print(a % b)  # 나머지: 1
    print(a ** b) # 거듭제곱: 1000
    
    # 정수 나눗셈과 실수 나눗셈의 차이
    print(5 / 2)   # 실수 나눗셈: 2.5
    print(5 // 2)  # 정수 나눗셈: 2
    
    실행 결과:
    13
    7
    30
    3.3333333333333335
    3
    1
    1000
    2.5
    2
  2. 비교 연산자: 두 값을 비교하여 불리언 값을 반환합니다.
    • == (같다)
    • != (같지 않다)
    • < (작다)
    • > (크다)
    • <= (작거나 같다)
    • >= (크거나 같다)
    x = 5
    y = 10
    
    print(x == y)  # False
    print(x != y)  # True
    print(x < y)   # True
    print(x > y)   # False
    print(x <= y)  # True
    print(x >= y)  # False
    
    실행 결과:
    False
    True
    True
    False
    True
    False
  3. 논리 연산자: 불리언 값을 결합하거나 부정합니다.
    • and: 두 조건이 모두 참일 때 참 반환
    • or: 두 조건 중 하나라도 참이면 참 반환
    • not: 조건을 부정
    a = True
    b = False
    
    print(a and b)  # False
    print(a or b)   # True
    print(not a)    # False
    
    실행 결과:
    False
    True
    False

 


2.2 할당 연산자

할당 연산자는 값을 변수에 저장하거나 연산 후 값을 변수에 저장합니다.

  • =: 단순 할당
  • +=: 덧셈 후 할당
  • -=: 뺄셈 후 할당
  • *=: 곱셈 후 할당
  • /=: 나눗셈 후 할당
  • //=: 정수 나눗셈 후 할당
  • %=: 나머지 연산 후 할당
  • **=: 거듭제곱 후 할당
a = 5

# 단순 할당
b = a  # b = 5

# 복합 할당 연산자
b += 2  # b = b + 2, 결과: 7
b -= 1  # b = b - 1, 결과: 6
b *= 3  # b = b * 3, 결과: 18
b /= 2  # b = b / 2, 결과: 9.0
b //= 2 # b = b // 2, 결과: 4.0
b %= 3  # b = b % 3, 결과: 1.0
b **= 2 # b = b ** 2, 결과: 1.0

print(b)

실행 결과:

1.0

2.3 비트 연산자

비트 연산자는 정수를 이진수로 변환하여 각 비트를 기준으로 연산을 수행합니다.

  • & (AND): 두 비트가 모두 1일 때 1 반환
  • | (OR): 두 비트 중 하나라도 1이면 1 반환
  • ^ (XOR): 두 비트가 다를 때 1 반환
  • ~ (NOT): 비트를 반전
  • << (왼쪽 시프트): 비트를 왼쪽으로 이동
  • >> (오른쪽 시프트): 비트를 오른쪽으로 이동
a = 6  # 이진수: 0b0110
b = 3  # 이진수: 0b0011

print(a & b)  # AND: 2 (0b0010)
print(a | b)  # OR: 7 (0b0111)
print(a ^ b)  # XOR: 5 (0b0101)
print(~a)     # NOT: -7 (이진수 반전 후 보수 계산)
print(a << 1) # 왼쪽 시프트: 12 (0b1100)
print(a >> 1) # 오른쪽 시프트: 3 (0b0011)

실행 결과:

2
7
5
-7
12
3

2.4 연산자 우선순위

Python의 연산자 우선순위는 다음과 같습니다 (높은 순서부터 낮은 순서):

  1. 괄호 ()
  2. 거듭제곱 **
  3. 부호 +x, -x, 비트 반전 ~x
  4. 곱셈, 나눗셈, 나머지, 정수 나눗셈 *, /, %, //
  5. 덧셈, 뺄셈 +, -
  6. 비트 시프트 <<, >>
  7. 비교 연산자 <, <=, >, >=, ==, !=
  8. 비트 연산자 &
  9. 비트 연산자 ^
  10. 비트 연산자 |
  11. 논리 연산자 and
  12. 논리 연산자 or
  13. 할당 연산자 =, +=, -=, 등

예를 들어:

result = 3 + 2 * 2 ** 2 - (4 / 2)
print(result)

실행 결과:

9.0

위 계산은 다음 순서로 처리됩니다:

  1. 거듭제곱: 2 ** 2 = 4
  2. 곱셈: 2 * 4 = 8
  3. 나눗셈: 4 / 2 = 2.0
  4. 덧셈과 뺄셈: 3 + 8 - 2.0 = 9.0

이번 섹션에서는 Python의 다양한 연산자와 우선순위를 배웠습니다.