Python_operator 모듈

장해수·2023년 6월 6일
  1. operator 모듈
    1) 산술 연산자 모듈
import operator

num1 = 8
num2 = 3

print('{} + {} : {}'.format(num1, num2, operator.add(num1, num2)))
print('{} - {} : {}'.format(num1, num2, operator.sub(num1, num2)))
print('{} * {} : {}'.format(num1, num2, operator.mul(num1, num2)))
print('{} / {} : {}'.format(num1, num2, operator.truediv(num1, num2)))
print('{} % {} : {}'.format(num1, num2, operator.mod(num1, num2)))
print('{} // {} : {}'.format(num1, num2, operator.floordiv(num1, num2)))
print('{} ** {} : {}'.format(num1, num2, operator.pow(num1, num2)))
8 + 3 : 11
8 - 3 : 5
8 * 3 : 24
8 / 3 : 2.6666666666666665
8 % 3 : 2
8 // 3 : 2
8 ** 3 : 512

2) 비교 연산자 모듈

import operator

num1 = 8
num2 = 3

print('{} == {} : {}'.format(num1, num2, operator.eq(num1, num2)))
print('{} != {} : {}'.format(num1, num2, operator.ne(num1, num2)))
print('{} > {} : {}'.format(num1, num2, operator.gt(num1, num2)))
print('{} >= {} : {}'.format(num1, num2, operator.ge(num1, num2)))
print('{} < {} : {}'.format(num1, num2, operator.lt(num1, num2)))
print('{} <= {} : {}'.format(num1, num2, operator.le(num1, num2)))
8 == 3 : False
8 != 3 : True
8 > 3 : True
8 >= 3 : True
8 < 3 : False
8 <= 3 : False

3) 논리 연산자 모듈

import operator

flag1 = True
flag2 = False

print('{} and {} : {}'.format(flag1, flag2, operator.and_(flag1, flag2)))
print('{} or {} : {}'.format(flag1, flag2, operator.or_(flag1, flag2)))
print('not {} : {}'.format(flag1, operator.not_(flag1)))
True and False : False
True or False : True
not True : False
  1. 실습
    예제 1) 이전에 실습했던 백신 접종 대상자 출력 코드를 operator 모듈을 이용해서 변경해보자.
'백신 접종 대상자는 20세 미만 또는 65세 이상자에 한합니다.'를 논리 연산자를 이용해서 코딩해보자. 
  • 코드
import operator

age = int(input('나이: '))
# vaccine = (age < 20) or (age >= 65)
vaccine = operator.or_(operator.lt(age, 20),operator.ge(age, 65))

print('나이: {}, 접종 가능 여부: {}'.format(age, vaccine))
나이: 29
나이: 29, 접종 가능 여부: False
나이: 19
나이: 19, 접종 가능 여부: True

예제 2) random과 operator 모듈을 사용해서 10부터 100 사이의 난수 중 십의자리와 일의 자리가 각각 3의 배수인지 판단하는 코드를 작성해보자.

  • 코드
import random

rInt = random.randint(10, 100)   # 10부터 100까지 중 난수 추출
num10 = operator.floordiv(rInt, 10)   # 10의 자리 수
num1 = operator.mod(rInt, 10)   # 1의 자리 수

print('난수: {}'.format(rInt))
print('십의 자리: {}'.format(num10))
print('일의 자리: {}'.format(num1))
print('십의 자리는 3의 배수이다: {}'.format(operator.mod(num10, 3) == 0)) #num10을 3으로 나누었을 때 나머지가 0이다 = 3의 배수
print('일의 자리는 3의 배수이다: {}'.format(operator.mod(num1, 3) == 0)) #num1을 3으로 나누었을 때 나머지가 0이다 = 3의 배수
난수: 67
십의 자리: 6
일의 자리: 7
십의 자리는 3의 배수이다: True
일의 자리는 3의 배수이다: False
profile
데이터 진행시켜

0개의 댓글