파이썬에는 증감 연산자가 존재하지 않는다
C/C++나 Java 같은 언어에서 ++와 --는 값을 1씩 증가·감소시키는 증감 연산자로 정의되어 있습니다. 그러나 파이썬(Python)에는 이러한 연산자가 아예 정의되어 있지 않습니다.
그 이유: 객체와 변수의 구조적 차이
파이썬은 모든 데이터를 메모리에 객체(object) 형태로 저장하고, 변수는 단순히 그 객체를 가리키는 라벨(label)에 불과합니다. 특히 숫자형(int, float) 객체는 불변(immutable)이므로 한 번 생성된 값 자체를 변경할 수 없습니다. 따라서 기존 값을 직접 수정하는 방식의 증감 연산은 성립하지 않습니다.
전위(++a) 연산: 에러는 없지만 동작하지 않음
흥미롭게도 전위 형태인 ++a나 --b는 문법 오류가 발생하지 않지만, 의도한 대로 동작하지도 않습니다.
>>> a = 5 >>> b = 6 >>> ++a 5 >>> --b 6
이것은 버그처럼 보일 수 있지만, 사실 파이썬 인터프리터가 ++a를 단항 덧셈 연산자(+)를 두 번 적용한 것으로 해석하기 때문입니다. 즉 +(+a)로 처리되어 결과적으로 a의 값 그대로 5가 반환됩니다. 마찬가지로 --b도 -(-b), 즉 이중 부호로 해석되어 6이 그대로 출력됩니다.
후위(a++) 연산: 문법 오류 발생
반면 후위 형태인 a++나 b--는 SyntaxError를 일으킵니다.
>>> a = 5 >>> b = 6 >>> a++ SyntaxError: invalid syntax >>> b-- SyntaxError: invalid syntax
파이썬에는 후위 증감 연산이라는 개념 자체가 없기 때문에 인터프리터가 해당 표현식을 해석할 수 없어 오류가 발생합니다.
파이썬에서 올바른 증감 방법
C 스타일의 증감 연산자 대신 파이썬에서는 복합 할당 연산자를 사용해야 합니다.
>>> a = 5 >>> a += 1 # a++에 해당 >>> print(a) 6 >>> a -= 1 # a--에 해당 >>> print(a) 5
핵심 요약
- 파이썬에는
++,--연산자가 공식적으로 존재하지 않습니다. - 전위(
++a): 문법상 허용되지만 단항 + 연산자의 중복 적용으로 해석되어 값이 변하지 않습니다. - 후위(
a++): SyntaxError가 발생합니다. - 대안:
a += 1또는a -= 1을 사용하세요.