6.2 변수로 계산하기
변수를 만드는 방법을 알아보았으니 이번에는 변수를 활용하여 계산을 해보겠습니다.
>>> a = 10 >>> b = 20 >>> c = a + b >>> c 30
변수 a, b에 숫자를 할당한 뒤에 a와 b의 값을 더해서 변수 c에 할당했습니다. 이렇게 변수는 변수끼리 계산할 수 있고, 계산 결과를 다른 변수에 할당할 수 있습니다.
6.2.1 산술 연산 후 할당 연산자 사용하기
그럼 변수 a의 값을 20 증가시키려면 어떻게 해야 할까요? a + 20처럼 20을 더하면 30이 나오지만 a의 값을 다시 출력해보면 10이 나옵니다.
>>> a = 10 >>> a + 20 30 >>> a 10
a + 20은 a에 20을 더하기만 할 뿐 계산 결과를 유지하지 않습니다. 변수 한 개에서 값의 변화를 계속 유지하려면 계산 결과를 다시 변수에 저장해야 합니다.
>>> a = 10 >>> a = a + 20 # a와 20을 더한 후 결과를 다시 a에 저장 >>> a 30
이렇게 a = a + 20과 같이 a에 20을 더한 값을 다시 a에 할당해주면 계산 결과가 계속 유지됩니다. 그런데 a를 두 번 입력해야 하니 조금 번거롭죠? 파이썬에서는 변수를 두 번 입력하지 않도록 산술 연산 후 할당 연산자를 제공합니다.
>>> a = 10 >>> a += 20 # a와 20을 더한 후 결과를 다시 a에 저장 >>> a 30
a에는 10이 들어있고 a += 20을 수행하면 a에는 10과 20을 더한 결과인 30이 들어갑니다. +=처럼 산술 연산자 앞에 =(할당 연산자)를 붙이면 연산 결과를 변수에 저장합니다(+ =처럼 두 연산자를 공백으로 띄우면 안 됩니다). 즉, a += 20은 a = a + 20을 축약한 형태입니다.
여기서는 덧셈(+=)만 해보았는데 뺄셈(-=), 곱셈(*=), 나눗셈(/=, //=), 나머지(%=)도 같은 방식입니다. 똑같이 연산(-, *, /, //) 후 할당(=) 한다는 뜻입니다.
산술 연산 후 할당 연산자를 사용할 때는 주의할 점이 있습니다. 다음과 같이 만들지 않은 변수 d에 10을 더한 후 다시 할당하면 에러가 발생합니다.
>>> d += 10 # d는 만들지 않은 변수 Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> d += 10 NameError: name 'd' is not defined
왜냐하면 계산 결과를 d에 할당하기 전에 d와 10을 더해야 하는데 d라는 변수가 없어서 덧셈이 안 되기 때문입니다. 따라서 연산 후 할당을 하려면 값이 들어있는 변수를 사용해야 합니다.
계산을 하다 보면 부호를 붙여야 하는 경우도 생깁니다. 이때는 값이나 변수 앞에 양수, 음수 부호를 붙이면 됩니다.
>>> x = -10 >>> +x -10 >>> -x 10
양수, 음수 부호 붙이기는 수학 시간에 배운 내용과 같습니다. -10에 + 부호를 붙이면 부호의 변화가 없고, -10에 - 부호를 붙이면 양수 10이 됩니다.