1. 데이터와 연산자 (Operator)

파이썬 프로그램은 수많은 데이터 객체(Data Object)들을 메모리에 띄우고, 이들 간의 상호작용을 통해 목적을 달성합니다. 데이터를 조작하고 가공하는 가장 근본적인 수단이 바로 연산자(Operator)입니다.

여기서는 파이썬에서 제공하는 산술, 비교, 비트, 논리 연산자들의 동작 방식을 살펴봅니다. 참고로 파이썬 내장 모듈인 operator를 활용하면 이러한 덧셈, 뺄셈 기호들을 순수 함수(Function) 형태로 대체해서 사용할 수도 있습니다.

1.1 산술 연산 (Arithmetic)

일반적인 사칙연산(+, -, *, /) 외에도 몫과 나머지를 전문적으로 구하는 연산자들이 존재합니다.

  • // (몫, Floor Division): 나눗셈 결과에서 소수점 이하를 버리고 정수 몫만 반환합니다.
  • % (나머지, Modulo): 나눗셈 이후 나누어 떨어지지 않고 남은 나머지를 반환합니다.

[!TIP] 몫과 나머지가 동시에 필요하다면 내장 함수 divmod(a, b) 를 사용하는 것이 효율적입니다. 결과로 (몫, 나머지) 쌍의 튜플 반환값을 갖습니다.


1.2 비교 연산 (Comparison)

두 데이터의 크기나 동일성을 비교하며, 그 여부에 따라 언제나 True 또는 False 불리언 값을 반환합니다.

  • > (크다), < (작다)
  • >= (크거나 같다), <= (작거나 같다)
  • == (값 자체가 완전히 같다), != (다르다)

조건문(if, while)의 흐름을 통제하는 가장 핵심적인 역할을 수행합니다.


1.3 비트 연산 (Bitwise)

수학 연산과 달리, 숫자를 2진수(0과 1) 구조로 완벽히 해체한 뒤 스위치를 다루듯 각 자릿수별로 연산하는 방식입니다. 주로 파이썬의 정수(int) 타입에서만 동작합니다.

  • & (AND / 논리곱): 두 비트가 모두 1일 때만 1 반환.
  • | (OR / 논리합): 두 비트 중 하나라도 1이면 1 반환.
  • ^ (XOR / 배타적 논리합): 두 비트가 서로 다를 때만 1 반환.
  • ~ (NOT / 반전): 비트 0을 1로, 1을 0으로 완전히 뒤집음 (부호가 바뀝니다).
  • <<, >> (Shift / 밀기): 비트 전체를 좌/우로 지정한 칸만큼 이동시킵니다.
    • << 1 은 숫자에 2를 곱하는 것과, >> 1 은 2로 나누는 몫과 연산 결과가 동일합니다.

1.4 논리 연산과 단축 평가 (Logical & Short-circuit)

데이터 간의 복잡한 참, 거짓 문맥을 하나로 엮어냅니다.

  • and: 양쪽 표현식이 모두 참이어야 최종 True.
  • or: 어느 한 쪽만 참이라도 최종 True.
  • not: 현재의 논리 상태를 반전시킵니다. (True -> False / False -> True)

단축 평가 (Short-Circuit Evaluation)

파이썬의 논리 연산은 불필요한 계산을 방지하기 위한 ‘단축 평가’ 방식으로 동작합니다.

예를 들어, A and B 에서 이미 A가 거짓(False)으로 판명되었다면 굳이 뒤쪽의 B 수식을 계산하지 않고 그 즉시 연산을 멈추고 A의 평가값을 반환해 버립니다. 반대로 A or B 에서 A가 이미 참(True)이라면, 더 이상 보지 않고 바로 A의 평가값을 반환합니다.

서브목차