Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python operator 모듈 완벽 가이드: 산술 연산자와 관계 연산자 함수 활용법

Python은 산술(arithmetic), 논리(logical), 관계(relational), 비트(bitwise) 등 다양한 수학적 연산을 수행할 수 있는 표준 라이브러리 메서드를 추가로 제공합니다. 이러한 메서드들은 operator 모듈 안에 포함되어 있습니다.

operator 모듈을 사용하려면 먼저 표준 라이브러리 모듈을 임포트해야 합니다.

import operator

이 글에서는 operator 모듈이 제공하는 여러 연산자 함수 중 비트 연산과 컨테이너 연산에 앞서, 가장 기본이 되는 산술 연산 함수와 관계(비교) 연산 함수를 살펴보겠습니다.

산술 연산(Arithmetic Operations)

가장 먼저 산술 연산을 수행하는 함수들을 알아보겠습니다. 각 함수는 일반적인 연산자 기호와 동일한 결과를 함수 형태로 반환합니다.

번호 함수 및 설명
1

add(x, y)

두 수 x와 y를 더합니다. 단순한 덧셈을 수행하며 x + y 연산과 동일한 결과를 반환합니다.

2

sub(x, y)

x에서 y를 뺍니다. x - y 연산과 동일합니다.

3

mul(x, y)

두 수 x와 y를 곱합니다. x * y 연산과 동일합니다.

4

truediv(x, y)

x를 y로 나눈 결과를 반환합니다. 나눗셈의 결과로 소수(실수) 값이 나올 수 있으며, x / y 연산과 동일합니다.

5

floordiv(x, y)

x를 y로 나눈 몫(정수 부분)을 구합니다. x // y 연산과 동일합니다.

6

mod(x, y)

x를 y로 나눈 나머지를 구합니다. x % y 연산과 동일합니다.

7

pow(x, y)

x의 y제곱(x^y)을 계산합니다. x ** y 연산과 동일합니다.

예제 코드

# 산술 연산자
import operator
print('Add: ' + str(operator.add(56, 45)))
print('Subtract: ' + str(operator.sub(56, 45)))
print('Multiplication: ' + str(operator.mul(56, 45)))
print('True division: ' + str(operator.truediv(56, 45))) # a / b와 동일
print('Floor division: ' + str(operator.floordiv(56, 45))) # a // b와 동일
print('Mod: ' + str(operator.mod(56, 45))) # a % b와 동일
print('pow: ' + str(operator.pow(5, 3)))

실행 결과

Add: 101
Subtract: 11
Multiplication: 2520
True division: 1.2444444444444445
Floor division: 1
Mod: 11
pow: 125

관계 연산(Relational Operations)

operator 모듈에는 <, <=, >, >=, ==, != 같은 관계(비교) 연산자에 대응하는 함수들도 포함되어 있습니다. 이 함수들은 조건식 대신 함수 호출 형태로 참(True) 또는 거짓(False)을 반환하기 때문에, sorted()filter()처럼 함수를 인자로 받는 코드에서 특히 유용하게 활용됩니다.

주요 관계 연산 함수는 아래와 같습니다.

번호 함수 및 설명
1

lt(x, y)

x가 y보다 작은지 검사합니다. x < y 연산과 동일합니다.

2

le(x, y)

x가 y보다 작거나 같은지 검사합니다. x <= y 연산과 동일합니다.

3

eq(x, y)

x와 y가 서로 같은지 검사합니다. x == y 연산과 동일합니다.

4

gt(x, y)

x가 y보다 큰지 검사합니다. x > y 연산과 동일합니다.

5

ge(x, y)

x가 y보다 크거나 같은지 검사합니다. x >= y 연산과 동일합니다.

6

ne(x, y)

x와 y가 서로 다른지 검사합니다. x != y 연산과 동일합니다.

예제 코드

# 관계(비교) 연산자
import operator
print('Less Than: ' + str(operator.lt(5, 10)))
print('Less Than Equal: ' + str(operator.le(10, 10)))
print('Greater Than: ' + str(operator.gt(5, 5)))
print('Greater Than Equal: ' + str(operator.ge(5, 5)))
print('Equal to: ' + str(operator.eq(12, 12)))
print('Not Equal to: ' + str(operator.ne(15, 12)))

실행 결과

Less Than: True
Less Than Equal: True
Greater Than: False
Greater Than Equal: True
Equal to: True
Not Equal to: True

마무리

operator 모듈의 연산자 함수는 일반 연산자 기호와 결과가 완전히 동일하지만, 함수 객체 자체를 변수에 담거나 다른 함수의 인자로 전달할 수 있다는 점에서 강력합니다. 예를 들어 functools.reduce(operator.mul, numbers)처럼 리스트 전체의 곱을 손쉽게 계산할 수 있습니다. 람다(lambda) 함수를 직접 작성하는 것보다 가독성과 성능 면에서 유리한 경우가 많으니, 실무 코드에서 적극적으로 활용해 보시기 바랍니다.