연산자란 result = data1 + data2 의 코드가 있다고 할 때, =와 +를 연산자라고 하며, data1과 data2는 피연산자라고 한다. 연산자의 종류는 다음과 같다.
- 산술 연산자: +, -, *, /, %, //, **
- 할당 연산자: =, +=, -=, *=, /=, %=. //=
- 비교 연산자: >, >=, <, <=, ==, !=
- 논리 연산자: and, or, not
산술 연산자
%, //, **라는 생소한 기호가 나오는데 이는 각각 나머지, 몫, 거듭제곱을 구하는 연산자다. 나눗셈을 할 때 주의할 점이 있는데 0을 나눗셈하는 경우(0/3) 결과는 항상 0이다. 반대로, 0으로 나누는 경우(3/0) 0으로는 나눌 수 없으므로 오류가 발생한다. 또한, 나눗셈의 결과는 항상 실수(float)로 나타난다.
나머지와 몫을 한번에 구할 수도 있는데, divmod() 함수를 사용하면 된다. num1을 num2로 나누어준다고 했을 때, 아래와 같이 코드를 입력하면 된다.
result = divmod(num1, num2)
결과는 (n0, n1) 이라고 숫자가 2개 나타나는데 여기서 n0은 몫이고 n1은 나머지이다. 또한, divmod() 함수를 사용했을 때 몫과 나머지를 따로 나타내고 싶다면 아래와 같이 하면 된다.
print(‘몫 : {}’.format(result[0])
print(‘나머지 : {}’.format(result[1])
**는 거듭제곱을 하는 연산자이지만 이를 활용하여 제곱근을 구할 수도 있다. n의 m제곱근을 구하려면 아래와 같다.
result = 2**(1/2) # 2의 제곱근
result = 2**(1/3) # 2의 3제곱근
제곱근과 거듭제곱을 구하기 위해서는 아래와 같이 math 모듈의 sqrt()와 pow() 함수를 사용할 수도 있다.
import math
print(‘2의 제곱근 %f’ % math.sqrt(2))
print(‘2의 3제곱 %f’ % math.pow(2, 3))
주의할 점은 import math 라는 코드를 작성해야 sqrt()와 pow() 함수를 사용할 수 있다는 점이고, sqrt() 함수를 이용하여 제곱근을 구할 때는 2제곱근밖에 구할 수 없다. 3제곱근부터는 result = n**(1/3) 의 코드로 구해야 한다.
원화로 금액을 나타날 때 숫자 3자리마다 콤마(,)를 넣기 위해 format 함수를 이용하면 깔끔하게 출력할 수 있다.
result = format(num, ‘,’)
print(result, ‘원’)
이렇게 코드를 작성하면 xxx,xxx원 이라고 출력된다. 주의할 점은 이렇게 작성된 금액은 문자(열)형으로 바뀌어서 더 이상 숫자로써 사용할 수 없다는 것이다.
복합 연산자
=은 할당(대입) 연산자인데, +=와 -= 등 연산자가 두 개씩 붙어있는 경우 복합 연산자라고 한다. 이는 덧셈 연산 후 할당, 뺄셈 연산 후 할당과 같이 앞에 있는 연산자로 연산 후 할당된다는 뜻이다.
비교 연산자
비교 연산자는 일반적으로 숫자를 비교하지만, 아스키 코드를 이용하면 십진법에 따라 문자도 비교할 수 있다. 아스키 코드란 각 문자마다 이진법, 팔진법, 십진법 등 진법에 따라 숫자를 부여한 표이다. ord()와 chr() 함수를 사용하면 문자와 숫자를 아스키 코드의 십진법에 따라 변환시킬 수 있다.
print(‘\’A\’ -> {}’.format(ord(‘A’))) # ‘A’ -> 65
print(‘65 -> {}’.format(chr(65))) # 65 -> A
문자열끼리 비교하는 경우 == 또는 !=의 연산자만 사용할 수 있다. 주의할 점은 글자가 하나라도 다르면 두 문자열은 서로 다른 문자열로 취급된다는 것이다.
논리 연산자
논리 연산자의 종류로는 and, or, not이 있다. A and B는 A와 B 모두 True인 경우만 결과값으로 True가 나타난다. A or B는 둘 중 하나만 True이면 결과 값은 True이다. not A는 A의 상태를 부정하는 결과를 나타낸다.
operator 모듈
모듈이란 누군가가 이미 만들어놓은 여러 기능을 뜻한다. 연산자는 operator 라는 모듈을 사용하여 작성할 수도 있는데, 그러기 위해서는 먼저 import operator 이라는 코드를 작성해야만 한다. 관련 함수는 다음과 같다.
산술 연산자 | operator 모듈 |
+ | operator.add() |
- | operator.sub() |
* | operator.mul() |
/ | operator.truediv() |
% | operator.mod() |
// | operator.floordiv() |
** | operator.pow() |
비교 연산자 | operator 모듈 |
== | operator.eq() |
!= | operator.ne() |
> | operator.gt() |
>= | operator.ge() |
< | operator.lt() |
<= | operator.le() |
논리 연산자 | operator 모듈 |
and | operator.and_() |
or | operator.or_() |
not | operator.not_() |
'데이터 분석 > 파이썬' 카테고리의 다른 글
파이썬 중급 - 함수, 전역 변수와 지역 변수, 중첩 함수, lambda 키워드 (0) | 2022.10.17 |
---|---|
파이썬 기초 - 조건식, 조건문, 반복문 (0) | 2022.10.13 |
파이썬 기초 - 데이터 입력과 출력 (0) | 2022.10.11 |
파이썬 기초 - 자료형 (정수형, 실수형, 문자형, 논리형) (0) | 2022.10.10 |
파이썬 기초 - 변수란? 변수명 지을 때 주의사항은? (0) | 2022.10.10 |