조금 더 어려운 연산을 해 봅시다. 실행결과를 보고 어떤 연산인지 감이 오나요?
print(2 ** 3)
print(10 % 3)
print(10 // 3)
실행결과 |
8 1 3 |
첫 번째 연산자 **는 연산자 앞의 수를 뒤의 수만큼 거듭제곱하라는 뜻입니다. 2 ** 3이므로 2를 세제곱한 8이 나옵니다. 두 번째 연산자 %는 연산자 앞의 수를 뒤의 수로 나눈 나머지를 구하라는 뜻입니다. 따라서 10을 3으로 나눈 나머지인 1을 출력합니다. 마지막 연산자 //는 연산자 앞의 수를 뒤의 수로 나눈 몫을 구하라는 뜻입니다. 따라서 10을 3으로 나눈 몫인 3을 출력합니다.
이전 코드에서 정수와 정수의 나누기 결과로 정숫값을 얻으려면 6 / 3 대신 6 // 3을 한다고 했었죠. // 연산자는 몫을 구하므로 6을 3으로 나눈 몫인 2가 결과로 나오게 됩니다. 즉, 우리가 원하는 정수 형태의 결과를 얻을 수 있습니다.
이번에 배운 3가지 연산자도 수를 계산하는 데 사용하는 산술 연산자입니다.
표 3-2 산술 연산자 2
연산자 |
의미 |
** |
연산자 왼쪽을 오른쪽만큼 거듭제곱 |
% |
연산자 왼쪽을 오른쪽으로 나눈 나머지 |
// |
연산자 왼쪽을 오른쪽으로 나눈 몫 |