brunch

You can make anything
by writing

C.S.Lewis

by 미래지기 Jul 10. 2024

거듭제곱, 몫, 나머지 연산자들

% | Percent Sign, 퍼센트, 백분율


연산자 演算子 | operator


'연산자'란, 한자의 뜻에서도 알 수 있듯이 '계산을 하기 위한 기호'입니다.


예를 들어, 2와 3이라는 두 수를 계산할 때 사용되는 '+'나 '*' 같은 기호가 바로 '연산자'라는 것이죠. 프로그래밍 세계에서 곱하기를 할 때는 '*' 연산자를 쓰고, 나눗셈을 할 때는 '/' 연산자를 씁니다.


원래 계산이라는 게 그렇습니다. 계산되는 수는 같은데 어떤 연산자를 쓰느냐에 따라 계산 결과가 달라집니다. 너무 당연한 이야기인가요?


컴퓨터는 궁극적으로 수 number를 계산하는 기계입니다. 그래서 수를 계산하기 위한 연산자도 여러 가지가 있습니다. 지난 시간에, 파이썬이라는 프로그래밍 언어에서 정의한 사칙연산 기호에는 아래와 같이 네 가지가 있다고 배웠습니다.


덧셈은 +

뺄셈은 -

곱셈은 *

나눗셈은 /


컴퓨터는 계산만 할까요? 아닙니다. '비교'도 합니다. '할당'도 합니다. '식별'도 하고요. '논리 연산'이라는 것도 있습니다. 아무튼 연산에는 수많은 종류가 있습니다. 꼭 더하고 빼는 '계산'만 연산이 아닙니다.


컴퓨터 입장에서 보면 계산, 비교, 식별, 할당 등이 모두 '연산'입니다. 그래서 '연산자'란 '어떤 작업을 하기 위해 사용하는 기호'로 정의하는 게 좋습니다. 일종의 도구나 연장 같은 것이죠. 오늘은 그중에서 '계산'에 관계된 나머지 연장, 즉 연산자를 마저 알아볼 것입니다.


계산에 관한 작업을 하는 연산자. 이것을 있어 보이는 말로 '산술 연산자'라고 부릅니다.


연산  operation

연산자  opeator

산술 연산자  arithmetic operator




서론이 길었는데요, 나머지 산술 연산자를 알아보기 전에 약간 특이한 것을 알려드리겠습니다.


계산에서 더하기 기호는 '+'입니다. 수를 더하는 연산자이지요. 그런데 이것이 문자 출력에도 사용됩니다.


print(2 + 3) 하면 실행 결과는 5입니다.


그런데


print('2' + '3')를 출력하면 어떻게 될까요?


'23'이 출력됩니다.


이건 23이라는 수가 아닙니다. '23'이라는 문자열입니다. 즉, '+' 연산자는 특이하게도 문자나 문자열을 묶어주는 기능도 있습니다. 계산을 하는 게 아닙니다. 문자들을 이어 붙여서 나의 문자열로 만들어 줍니다.


그래서


print('나는' + '서울사람이다')를 실행하면 아래와 같이 출력됩니다.


나는서울사람이다


print('나는' + 3)이라고 하면 어떨까요? '나는'이라는 문자열 옆에 '3'이라는 숫자를 붙여줍니다.


나는3


곱하기 연산자 '*'가 좀 특이합니다. 얘는 문자/문자열을 원하는 만큼 반복해서 출력해 줍니다.


print('나는' * 3)을 실행하면 아래와 같이 출력됩니다.


나는나는나는


꼭 기억해 두시기 바랍니다.




자, 서론의 서론이 길었습니다. 이제 본론으로 들어가겠습니다.


첫째, 파이썬에서 거듭제곱을 표현하려면 '*' 연산자를 두 번 연달이 쓰면 됩니다.


지수 연산자  **


print( 3 ** 2 ) 코드는 9를 출력합니다. 3의 거듭제곱, 즉 3의 2승을 연산한 것이죠.


11의 20승은 얼마일까요?


672749994932560000000입니다.


print(11 ** 20)이라고 코딩을 하면 됩니다.


둘째, 파이썬에서 나눗셈을 할 때 몫과 나머지를 구하려면 각각 '//'과 '%' 연산자를 사용하면 됩니다.


나눗셈 연산자  /

나눗셈에서 몫을 구하는 연산자 //

나눗셈에서 나머지를 구하는 연산자  %


'10 나누기 3'의 코드는

print(10/3)입니다.


결과는 예상하시다시피 3.3333333333333335입니다.


'10 나누기 3'에서 몫은 '3'이지요? 그리고 나머지는 '1'입니다. 코딩을 해 볼까요?


print(10//3)

print(10%3)


'10%3'은 10의 3퍼센트를 계산하라는 게 아닙니다. '10을 3으로 나누고 난 나머지'를 구하는 연산입니다.


어떤가요? 코딩이 어렵게 느껴지시나요?


알기는 다 아는데, 일부러 정의를 내리고 이름을 붙여주고 하니까 어려워 보이는 것입니다. 그게 바로 '언어'인 것 같습니다. 이렇게 하고, 저렇게 하고 약속을 하는 것이지요. 한국어나 영어 같은 자연언어도 약속입니다. 연산도 언어고, 수학도 언어이, 코딩도 언어입니다. 약속된 인공적인 말로 컴퓨터에게 명령을 내리는 것이 바로 '코딩'입니다.


언어  language

프로그래밍 언어  programming language

자연 언어  natural language


어떤 종류의 약속이든지, 약속을 이해하고 또 지키기란 어렵습니다. 그래서 자연스러워질 때까지 꾸준히 연습하는 게 중요합니다. 사람마다 성취하는 시간은 다르겠지만, 꾸준히만 한다면 언젠가는 코딩도 자연언어만큼 자연스럽게 구사할 날이 올 것이라 확신합니다. 꾸준함이 자유로움을 약속합니다.




Quiz


오늘도 퀴즈를 풀어보세요.


1. '3.14의 12승'은 얼마일까요? 코드를 짜 보세요.


2. 몫으로 '10'이 출력되는 파이썬 코드를 짜 보세요. 사용되는 수는 어떤 것이든지 상관없습니다.


3. 나머지가 '3'이 출력되는 파이썬 코드를 짜 보세요. 사용되는 수는 어떤 것이든지 상관없습니다.


▨ 미래지기

매거진의 이전글 사칙연산
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari