본문 바로가기

Data analysis story

[Python] 파이썬의 연산자, 산술 연산자, 연산자 우선순위, 복합 연산자

안녕하세요 여러분! 앞선 2개의 포스팅에서 변수, 함수(내장함수)에 대해서 공부해봤는데요!

 

오늘은 수식과 연산자에 대해서 다뤄보려고 합니다.

 

저번 포스팅을 진행하면서 수식과 연산자가 나왔는데요!

추가 설명을 하지 않아도 직관적으로 이해할 수 있을 만큼의 수식이라 그냥 넘어갔었습니다!

이 포스팅에서는 조금 더 자세하게 배워보죠!

 

일단 수식(expression)이 뭘까요?

 

수식이란 피연산자들과 연산자의 조합입니다. 더 어렵나요?

연산자(operator)는 연산을 나타내는 기호이며, 피연산자(operand)는 연산의 대상이 되는 것입니다.

그림을 통해 이해해 봅시다!

이제 이해가 되나요?? 다른 건 다 이해가 되는데 ‘*’ 기호는 과연 무엇을 나타내는 걸까요?

여기서 연산자 *는 곱하기를 나타내는 연산자입니다.

 

오늘은 파이썬에서 사용하는 이런 연산자에 대해서 알아보도록 합시다!

 

먼저 산술 연산자에 대해서 알아볼게요!

산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산에 관한 연산자입니다!

표로 정리해볼게요

파이썬에서 덧셈은 +, 뺄셈은 -, 곱셈은 *, 나눗셈은 /로 합니다.

 

그리고 몫을 구하고 싶으면 //를 나머지를 구하고 싶으면 %를 사용해주면 됩니다!

 

저번 포스팅에서 배운 input함수와 print함수를 통해 여러 숫자들의 나머지와 몫을 구해볼까요?

p라는 변수에 사용자가 분자로 넣을 값을 입력하고

q라는 변수에 사용자가 분모로 넣을 값을 입력한 후

// 연산자를 사용하여 몫을 구하고 % 연산자를 사용하여 나머지를 구하는 코드입니다.

실행해 볼까요?

53을 입력했더니 몫으로 1, 나머지로 2가 나오네요!

다른 분자와 분모를 입력하면 몫과 나머지의 값으로 다른 숫자가 출력되겠죠?

 

나머지 연산자 %는 굉장히 중요합니다.

나머지 연산자로 다양한 프로그램을 짤 수 있기 때문이죠.

 

먼저 나머지 연산자로 수가 짝수인지 홀수인지 구분할 수 있습니다.

어떻게요? 짝수를 2로 나누면 나머지가 얼마죠? 0이죠!

홀수를 2로 나누면요? 1이죠!

따라서 나머지 연산자로 수의 짝,홀수를 구분할 수 있는 것입니다.

실행해보면

이렇게 나옵니다! 홀수를 입력하면 결과 값 1이 출력됩니다.

 

또한 나머지와 몫을 구하는 연산자를 이용하면

초단위의 시간을 받아서 몇 분 몇 초인지를 계산할 수 있습니다.

왜냐구요? 초단위의 시간을 60으로 나누면 몫이 분이 되고 나머지가 남은 초가 되잖아요!

 

sec이라는 변수에 1000초라는 입력 값을 할당한 후 min이라는 변수에 분 값을

remainder라는 변수에 남은 초의 값을 넣은 프로그램을 작성해보겠습니다.

이렇게요!!!!

결과 값은

이렇게 나오네요. , 1000초라는 시간은 1640초라고 말할 수 있습니다.

 

또 응용해서 거스름돈을 계산해보죠!

5000원을 가지고 있다고 가정합시다. 사고 싶은 사탕의 가격이 120원이라면 최대 몇 개의 사탕을 살 수 있고 또 그만큼의 사탕을 산다면 얼마가 남을까요?

 

역시나 몫과 나머지를 구하는 연산을 사용하면 됩니다.

결과를 보시면

그 사탕을 41개 살 수 있고 41개를 다 산다면 80원이 남을 것입니다.

 

어떤가요? 나머지와 몫을 구하는 연산자만 사용해도

실생활에서 생각해볼 수 있는 여러 프로그램을 짤 수 있죠?

그러니 꼭 이 연산자들을 암기하시길 바랄게요!

 

앞선 산술 연산자의 표에서 하나 추가하고 싶은 연산자가 있습니다!

바로 ** 연산자인데요!

 

저번 포스팅에서 pow() 라는 내장함수가 어떤 역할을 한다고 했었죠?

pow(x,y)를 실행하면 xy제곱 값이 출력됐었죠?

 

그러면서 제가 이 함수를 쓰지 않고 ** 연산자를 활용해도 같은 값을 구할 수 있다는 것을

보여드렸는데요!

 

이처럼 ** 연산자는 지수 연산자입니다. 지수(power)를 계산하려면 ** 연산자를 사용해야 합니다.

저번 포스팅을 못 보신 분들을 위해 예시를 보여드릴게요

이렇게요

!

변수를 사용해서도 지수 계산을 할 수 있답니다!

이런 ** 연산자를 좀 활용해볼까요?

 

이차방적식을 계산하고자 할 때 사용될 수 있습니다.

이렇게 말이죠!

곱하기 연산자인 *와 지수 연산자인 **가 함께 사용됐네요

 

또한 원리금을 계산하는데도 응용할 수 있는데요

원금이 1000원이고 이자율은 5%, 10년이 지나면 이 돈은 얼마가 될까요?

이렇게 지수 연산자를 이용해서 계산할 수가 있겠죠?

 

이런 연산자들을 같이 사용할 때는 우선 순위가 있는 것 아시죠?

지금까지 배운 연산자들의 순위는 다음과 같습니다.

우선순위를 사용자가 지정해서 두고 싶은 경우 ( ) 괄호를 사용하면 됩니다!

 

그러면 배운 연산자들을 가지고 BMI를 계산하는 프로그램을 짜봅시다.

사용자로부터 신장과 체중을 입력 받아서 BMI 값을 출력하는 프로그램을 작성하여 봅시다.

BMI를 도출해내는 공식은 다음과 같습니다.

나누기와 지수 계산이 필요한데 우리 앞서 이 연산자들을 모두 배웠으니까 할 수 있겠죠?

여러분들도 잠시 멈추고 코드를 구현해보고 확인해보세요!

저는

 

이렇게

짜봤습니다.

/연산자와 **연산자를 사용하면 되겠죠??

 

이 외에 파이썬에서 많이 쓰는 연산자를 하나 추가해서 알려드리고 싶은데요!

바로 복합연산자입니다.

복합 연산자(compound operator) +=처럼 대입 연산자와 다른 연산자를 합쳐 놓은 연산자입니다.

그림을 통해 알아보죠!

‘num2를 더해서 다시 num에 집어넣어라

num=num+2로 나타냈는데

이것을 num+=2

라고 복합연산자를 사용해서 ‘num2를 더해서 다시 num에 집어넣어라의 의미를 나타낼 수 있는 겁니다.

나중에 반복문을 사용할 때 많이 쓰이니 잘 알아두는 게 좋겠죠?

 

이상으로 수식에 필요한 산술 연산자들을 알아보고 복합 연산자가 무엇인지에 대해서도 소개했습니다. 앞으로 포스팅하면서 더 많은 연산자들을 소개할 일이 있다면 하겠습니다!!