파이썬에서 숫자의 거듭제곱을 계산하는 방법은 크게 두 가지입니다. 바로 ** 연산자와 내장 함수인 pow()를 활용하는 것인데요. ** 연산자는 왼쪽의 숫자를 오른쪽 숫자만큼 거듭제곱하고, pow() 함수는 첫 번째 매개변수를 두 번째 매개변수만큼 거듭제곱합니다.
파이썬 거듭제곱(Power)이란?
거듭제곱 계산은 프로그래밍에서 자주 쓰이는 기본 수학 연산입니다. 예를 들어, 초등학교 6학년 학생들이 거듭제곱 개념을 복습할 수 있도록 도와주는 프로그램을 만든다면 거듭제곱 계산 기능이 반드시 필요하겠죠.
파이썬에서는 ** 연산자와 pow() 함수, 이 두 가지 방법으로 거듭제곱을 구할 수 있습니다. 이 글에서는 두 방법의 사용법과 실전 예제를 차례대로 살펴보겠습니다.
방법 1: ** 연산자
파이썬의 ** 연산자는 숫자를 지수만큼 거듭제곱하는 연산자입니다. 즉, ** 는 파이썬에서 거듭제곱을 담당하는 연산자라고 할 수 있습니다.
** 연산자는 계산을 위해 두 개의 값을 필요로 하며, 기본 문법은 다음과 같습니다.
5 ** 2위 코드를 실행하면 결과로 25가 출력됩니다. 이 표현식에서 5는 2제곱된 값으로, 5를 두 번 곱한 것과 같습니다.
** 연산자 활용 예제
간단한 예제를 통해 ** 연산자의 실제 활용법을 알아보겠습니다. 초등학교 6학년 학생들의 거듭제곱 실력을 테스트하는 퀴즈 프로그램을 만든다고 가정해 봅시다.
프로그램은 학생에게 수학 문제를 보여주고 답을 입력받습니다. 그런 다음 정답을 직접 계산해 학생이 입력한 값과 비교하는 방식으로 동작합니다.
number = 7
exponent = 2
student_answer = int(input("7의 2제곱은 얼마일까요?"))
answer = 7 ** 2
if student_answer == answer:
print("정답입니다!")
else:
print("아깝네요! 7의 2제곱은", answer, "입니다")프로그램을 실행하고 답으로 56을 입력하면 다음과 같은 결과가 출력됩니다.
7의 2제곱은 얼마일까요?
56
아깝네요! 7의 2제곱은 49 입니다프로그램이 입력값이 틀렸음을 판별하고, 올바른 정답과 함께 메시지를 출력한 것을 확인할 수 있습니다.
코드를 하나씩 살펴보겠습니다. 첫 번째 줄에서는 거듭제곱의 밑이 될 숫자를 저장하는 변수 number를 선언합니다. 다음 줄의 exponent 변수에는 number를 몇 제곱할지 나타내는 지수 값을 저장합니다.
그다음 줄에서는 파이썬의 input() 함수로 사용자에게 "7의 2제곱은 얼마일까요?"라고 물어보고 답을 입력받습니다.
int() 함수로 사용자의 입력값을 정수로 변환하는 이유는, input() 함수가 항상 문자열을 반환하기 때문입니다. ** 연산자는 숫자에만 사용할 수 있으므로 이 변환 과정이 필수적입니다.
이후 ** 연산자로 정답을 계산합니다. 여기서는 7 ** 2로 7의 2제곱을 구했습니다.
마지막으로 if문을 사용해 사용자가 정답을 맞혔으면 "정답입니다!"라는 메시지를, 틀렸다면 정답을 알려주는 메시지를 콘솔에 출력합니다.
방법 2: pow() 함수
파이썬에는 거듭제곱을 계산할 수 있는 내장 함수인 pow()도 포함되어 있습니다. pow() 함수는 밑(base), 지수(exponent), 그리고 모듈로(modulus) 값, 세 개의 매개변수를 받습니다.
pow() 함수는 특정 숫자를 다른 숫자만큼 거듭제곱해 줍니다. 참고로 내장 pow() 함수는 인수의 타입에 따라 결과 타입이 달라집니다. 정수를 넣으면 정수를, 부동소수점을 넣으면 부동소수점을 반환하며, math 모듈의 math.pow() 함수는 항상 부동소수점(float)을 반환한다는 점도 알아두면 좋습니다.
파이썬 pow() 함수의 기본 문법은 다음과 같습니다.
pow(base, exponent, modulus)pow() 함수가 받는 세 가지 매개변수는 다음과 같습니다.
- base: 거듭제곱의 밑이 되는 숫자 (필수)
- exponent: base를 몇 제곱할지 나타내는 지수 (필수)
- modulus: base ** exponent의 결과에 모듈로(나머지) 연산을 수행합니다. 이 값을 지정하려면 base와 exponent는 정수여야 하고, exponent는 양수여야 합니다. (선택)
앞의 두 인수만 전달하면 base의 exponent 거듭제곱이 계산됩니다.
세 번째 인수까지 전달하면 거듭제곱을 계산한 뒤, 그 결과를 modulus로 나눈 나머지를 반환합니다. 이 기능은 암호화 등 특수한 용도로 쓰이는 고급 기능이므로, 이 글에서는 자세히 다루지 않겠습니다.
모듈로 연산자에 대해 더 알고 싶다면 파이썬 모듈로 연산자 관련 자료를 추가로 참고하시길 권합니다.
pow() 함수 활용 예제
앞선 예제를 그대로 활용해 pow() 함수의 동작 방식을 살펴보겠습니다. 역시 초등학교 6학년 학생들의 거듭제곱 실력을 테스트하는 퀴즈 프로그램을 만든다고 가정합니다.
프로그램은 사용자에게 문제의 답을 입력받고 정답을 계산한 뒤, 두 값을 비교해 일치 여부를 판단합니다.
** 연산자 대신 pow() 함수를 사용해 코드를 작성하면 다음과 같습니다.
number = 7
exponent = 2
student_answer = int(input("7의 2제곱은 얼마일까요?"))
answer = pow(7, 2)
if student_answer == answer:
print("정답입니다!")
else:
print("아깝네요! 7의 2제곱은", answer, "입니다")첫 번째 예제와 코드 구조는 거의 같지만 한 가지 차이점이 있습니다. answer = 7 ** 2 대신 answer 변수에 pow(7, 2)의 결괏값을 할당했다는 점입니다. 정답인 49를 입력하면 프로그램은 다음과 같이 출력합니다.
7의 2제곱은 얼마일까요?
49
정답입니다!** 연산자 vs pow() 함수, 무엇을 써야 할까?
두 방법 모두 같은 결과를 내지만, 상황에 따라 적합한 선택이 다릅니다.
- ** 연산자: 문법이 간결하고 가독성이 좋아 일반적인 거듭제곱 계산에 널리 사용됩니다.
- pow() 함수: 세 번째 인수로 모듈로 연산을 지원하므로, 거듭제곱 후 나머지를 구해야 하는 경우(예: 암호화 알고리즘)에 유용합니다.
마무리
** 연산자와 pow() 함수는 모두 숫자를 거듭제곱하는 파이썬의 대표적인 방법입니다.
이 글에서는 ** 연산자와 pow() 함수를 사용해 파이썬에서 거듭제곱을 계산하는 방법을 알아보고, 각각의 실전 예제도 함께 살펴봤습니다. 이제 여러분도 프로처럼 파이썬에서 거듭제곱을 계산할 수 있을 것입니다!
파이썬을 더 깊이 배우고 싶다면 공식 문서, 온라인 강의, 코딩 테스트 사이트 등 다양한 학습 자료를 활용해 보세요.