| 나머지 연산자, 몫 연산자
숫자를 나누기를 할 때 아래 그림과 같이 몫과 나머지 값을 각각 구해서 사용해야 하는 경우가 있습니다.
이전에 배운 나누기 연산자(/)를 사용하게 되면, 소수점으로 결과를 얻게 됩니다. 왜냐하면 지난번에 설명을 드렸듯이 파이썬에서는 내부적으로 실수형으로 계산이 되어 정수형으로 값이 반환되지 않기 때문입니다. 실습을 위해 아래와 같은 코드를 입력하고 [엔터] 키를 누릅니다.
>>> 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가 됨을 확인할 수 있습니다.
지금까지 산술 연산에 대해 알아보았는데, 파이썬에 사용하는 기호가 수학에서 사용하는 기호와 몇몇은 상의한 부분이 있어 익히는데 어려움이 있을 수 있습니다. 하지만, 지금까지 배운 연산자는 가장 기초적인 부분이기 때문에 틈틈이 쉘에 값을 입력해 보면서 조금씩 파이썬 연산자에 익숙해 지길 바랍니다.
훗날 틈틈이 연습한 것들이 모여 분명 실력으로 나타나게 될 것을 볼 것입니다. 긴 글 읽어 주셔서 감사합니다.
'Python > 파이썬 훈련소(기초)' 카테고리의 다른 글
[파이썬 훈련소] 비교 연산자 (0) | 2021.04.04 |
---|---|
[파이썬 훈련소] 불(bool) 연산 (0) | 2021.03.29 |
[파이썬 훈련소] 산술연산(사칙연산) (0) | 2021.03.24 |
[파이썬 훈련소] 기초 문법 (주석) (0) | 2021.03.20 |
[파이썬 훈련소] 코딩 연습 공간 replit (0) | 2021.03.18 |
댓글