파이썬에서 % 연산자(모듈로)란?
파이썬에서 % 기호는 모듈로(modulo) 연산자로 정의되어 있습니다. 흔히 나머지 연산자라고도 부르며, 두 개의 숫자 피연산자를 나누었을 때 그 나머지(rest)를 반환하는 역할을 합니다. 단, 복소수(complex number)는 피연산자로 사용할 수 없습니다.
기본 사용 예제
>>> a=10 >>> b=3 >>> a%b 1
위 예제에서 10을 3으로 나누면 몫은 3이고 나머지는 1이므로, a%b의 결과는 1입니다.
실수(float)에도 적용 가능
>>> a=12.25 >>> b=4 >>> a%b 0.25
정수뿐만 아니라 실수에도 사용할 수 있습니다. 12.25를 4로 나누면 몫은 3이고 나머지는 0.25가 됩니다.
음수와 함께 사용할 때 주의점
>>> a=-10 >>> b=6 >>> a%b 2
파이썬의 모듈로 연산은 결과의 부호가 나누는 수(오른쪽 피연산자)의 부호를 따른다는 특징이 있습니다. -10을 6으로 나누면 몫은 -2(-12)가 되고, 남는 값은 2이므로 결과가 2로 출력됩니다. C 언어 등 다른 언어와 동작 방식이 다를 수 있으니 주의해야 합니다.
부동소수점 오차 발생 사례
>>> a=1.55 >>> b=0.05 >>> a%b 0.04999999999999996
실수 연산에서는 위 예제처럼 부동소수점(floating point) 표현 방식의 한계로 인해 미세한 오차가 발생할 수 있습니다. 이론상 1.55 % 0.05는 0이 되어야 하지만, 컴퓨터가 실수를 이진법으로 근사하여 저장하기 때문에 0.04999999999999996이라는 결과가 나옵니다. 정확한 계산이 필요하다면 decimal 모듈을 사용하는 것이 좋습니다.
정리
% 연산자는 파이썬에서 나눗셈의 나머지를 구하는 모듈로 연산자로, 짝수·홀수 판별, 주기적인 값 처리, 리스트 인덱스 순환 등 다양한 상황에서 유용하게 활용됩니다. 음수 연산 시 부호 규칙과 실수 연산 시 오차 가능성만 기억하면 안전하게 사용할 수 있습니다.