10.2 산술 연산 후 할당 연산자 사용하기

이번에는 산술 연산 후 할당 연산자를 알아보겠습니다.

>>> a = 10
>>> b = 20
>>> a += b
>>> a
30

먼저 10과 20을 더하면 30이죠? 여기서 a에는 10이 들어있지만 a += b를 수행하면 a에는 덧셈의 결과인 30이 들어갑니다. 즉, 산술 연산자 앞에 =(할당 연산자)를 붙이면 연산 결과를 변수에 저장합니다(+ =처럼 두 연산자를 공백으로 띄우면 안 됩니다). 즉, 다음과 같이 a += ba = a + b를 축약한 형태입니다.

a += b       # a와 b를 더한 후 결과를 다시 a에 저장
a = a + b    # a와 b를 더한 후 결과를 다시 a에 저장

이처럼 연산 후 할당 연산자는 변수 a를 두 번 입력하지 않아도 됩니다. 여기서는 덧셈만 해보았는데 뺄셈(-=), 곱셈(*=), 나눗셈(/=, //=)도 같은 방식입니다.

그럼 나머지 연산 후 할당은 결과가 어떻게 나올까요?

>>> a = 5
>>> b = 2
>>> a %= b
>>> a
1

5를 2로 나누었을 때 나머지는 1입니다. a에는 5가 들어있지만 나머지 연산의 결과가 1이므로 a에는 1이 들어갑니다.

산술 연산 후 할당 연산자를 사용할 때 주의할 점이 있습니다. 값이 저장될 변수(첫 번째 변수)에는 반드시 값이 들어있어야 합니다.

>>> a = 10
>>> b = 20
>>> c += b
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    c += b
NameError: name 'c' is not defined

여기서는 cb를 더한 결과를 c에 저장하도록 만들었는데 실행을 해보면 에러가 발생합니다. 왜냐하면 먼저 cb를 더해야 하는데 c라는 변수가 없어서 덧셈이 안 되기 때문입니다. 따라서 연산 후 할당을 하려면 값이 들어있는 변수를 사용해야 합니다.