본문 바로가기
Python/파이썬 훈련소(기초)

[파이썬 훈련소] 산술연산2

by 북마크한 취미생활 2021. 3. 27.

| 나머지 연산자, 몫 연산자

숫자를 나누기를 할 때 아래 그림과 같이 몫과 나머지 값을 각각 구해서 사용해야 하는 경우가 있습니다.

▲ 그림1 몫과 나머지가 있는 계산

이전에 배운 나누기 연산자(/)를 사용하게 되면, 소수점으로 결과를 얻게 됩니다. 왜냐하면 지난번에 설명을 드렸듯이 파이썬에서는 내부적으로 실수형으로 계산이 되어 정수형으로 값이 반환되지 않기 때문입니다.  실습을 위해 아래와 같은 코드를 입력하고 [엔터] 키를 누릅니다.

>>> 5/3
1.6666666666666667

따라서 그림 1과 같은 몫과 나머지를 구하기 위해서는 나누기(/) 연산자가 아닌 다른 연산자를 필요합니다. 파이썬에서는 이렇게 정수형 몫을 구하는 연산자 '//'와 나머지 값을 반환하는 연산자인 '%'를 사용하여 나머지를 구할 수 있도록 하였습니다.

몫을 구하기 위해여 몫 연산자인 '//'를 사용하여 다음과 같이 입력을 해보고 결과를 확인해 봅니다.

>>> 5//3
1

결과를 보면 알 수 있듯이, 몫을 구하는 연산자를 사용하면 소수점 이하의 값은 버리게 됩니다.

나머지 값을 구하기 위해 동일한 값에 나머지 값을 얻을 수 있는 연산자인 '%'를 사용하여 입력해보고 결과를 확인해 봅니다.

>>>5%3
2

결과 값이 수식의 나머지 값인 2가 반환됨을 볼 수 있습니다.

코드를 작성할 때 결괏값을 특성을 파악한 후 소수점이 포함된 값이 나오는 나눗셈 연산자(/)와 정수형 나머지 값만 나오는 나머지 연산자(//)가 필요한지 확인 후 사용해야 원하는 결괏값을 얻을 수 있습니다. 

| 제곱 연산

수학에서 n²와 같은 형태의 제곱 연산을 보셨을 텐데요. 파이썬에서는 이러한 제곱 연산을 위해서 ** 이렇게 곱하기 연산자를 두 번 붙여 제곱 연산을 사용합니다. 3² 를 파이썬 코드로 표현을 하면 3**2와 같이 표기를 하면 됩니다. 확인을 위해 다음과 같이 타이핑을 한 뒤 [엔터] 키를 치고,  결과를 확인해 봅니다.

>>> 3**2
9

결과는 3²의 답이 9로 표기됨을 볼 수 있습니다.

| 산술 연산 시 주의 점

1+2*3의 계산 결과는 무엇일까요? 9라고 생각하시는 분도 계실 텐데요. 산술 연산에서는 사칙연산(+,-,*,/) 보다 곱셈(*)과 나눗셈(/)의 연산 우선순위가 높습니다. 그렇기 때문에 계산 결과는 7이 나옵니다.

만약 연산자 우선순위에 대해서 명확한 이해가 없으신 분이 있다면 코드의 해석이 혼란스러울 수 있습니다. 따라서 이러한 혼선을 예방하고 코드의 가독성을 위해서는 괄호'(, )'를 사용하여 명확히 하게 알려주는 것이 좋은 코딩 습관입니다. 괄호는 연산 우선순위를 강제적으로 높여주기 때문에 *보다 +를 우선순위가 높게 계산할 수 있습니다.

위의 수식을 (1+2)*3처럼 괄호로 묶어 결과를 확인해 봅니다.

>>> (1+2)*3
9

+연산자가 *보다 우선순위가 낮지만 괄호에 의해서 연산 우선순위가 높아져 결과가 9가 됨을 확인할 수 있습니다.

지금까지 산술 연산에 대해 알아보았는데, 파이썬에 사용하는 기호가 수학에서 사용하는 기호와 몇몇은 상의한 부분이 있어 익히는데 어려움이 있을 수 있습니다. 하지만, 지금까지 배운 연산자는 가장 기초적인 부분이기 때문에 틈틈이 쉘에 값을 입력해 보면서 조금씩 파이썬 연산자에 익숙해 지길 바랍니다.

훗날 틈틈이 연습한 것들이 모여 분명 실력으로 나타나게 될 것을 볼 것입니다. 긴 글 읽어 주셔서 감사합니다.

반응형

댓글