[Basic] 연산자 정리 + [module] operator 모듈

고보·2024년 1월 16일

1 연산자

1-1 숫자 연산

  • 사칙연산: +, -, *, /
  • //: 몫
  • %: 나머지
  • **: 거듭제곱
  • n, k = divmod(a, b): a를 b로 나눈 몫과 나머지를 튜플로 return

1-2 논리 연산

  • bool literal: True/False
  • and
  • or
  • not

1-3 비교 연산

  • ==: 같다
  • !=: 같지 않다
  • <, <=, >, >=
  • is: ==은 값이 같은지, is는 같은 객체를 가리키는지

1-4 대입 연산자

  • =: 우측을 좌측에 대입

1-5 비트 연산자

  • 숫자들을 2진법으로 표현했을 때 2진법 각 자리끼리 연산
  • 예를 들어 a = 0011 1100(60), b = 0000 1101(13)이면
  • &: AND. 둘 다 참(1)인 부분만 만족 ex) a&b == 0000 1100 (12)
  • |: OR. 둘 중 하나만 참(1)이어도 만족 ex) a|b == 0011 1101(61)
  • ^: XOR. 둘 중 하나만 참(1)일 때만 만족 ex) a^b == 0011 0001(49)
  • ~: 보수연산(not). 1과 0이 바뀜 ex) -a == 1100 0011(-61? 이걸 모르겠음)
  • <<, >>: 왼쪽, 오른쪽 시프트 연산. 그 방향으로 자릿수 이동 ex) a<<2 == 1111 0000(240) a>>2 == 0000 1111(15)


2 operator 모듈

연산 수행에 사용되는 함수들을 제공하는 내장 모듈.

2-1 산술 연산자:

  • operator.add(a, b) +
  • operator.sub(a, b) -
  • operator.mul(a, b) *
  • operator.truediv(a, b) / (부동소수점)
  • operator.floordiv(a, b) //
  • operator.mod(a, b) %
  • operator.pow(a, b) **

2-2 비트 연산자:

  • operator.and_(a, b) 비트 AND 연산
  • operator.or_(a, b) 비트 OR 연산
  • operator.xor(a, b) 비트 XOR 연산
  • operator.invert(a) 비트를 반전

2-3 비교 연산자:

  • operator.lt(a, b) <
  • operator.le(a, b) <=
  • operator.eq(a, b) ==
  • operator.ne(a, b) !=
  • operator.gt(a, b) >
  • operator.ge(a, b) >=

2-4 시퀀스 연산자:

operator.concat(a, b): a와 b를 연결한 결과.
operator.contains(a, b): a에 b가 포함되어 있는지 여부.

2-5 Itemgetter 및 Attrgetter:

operator.itemgetter(*items): 인덱스나 키로 시퀀스나 매핑의 아이템을 추출하는 함수를 생성.
operator.attrgetter(*attrs): 객체의 속성을 추출하는 함수를 생성



3 기타 쓸모있는 연산 관련 함수들

  • divmod(10, 3) 몫과 나머지를 tuple로 return한다. 이 경우 (3, 1)
profile
일본에서 일하는 게임 기획자. 시시해서 죽어버리지 않게, 재밌고 의미 있는 컨텐츠에 관심 있습니다. 그 도구로 데이터, AI도 찝적댑니다.

0개의 댓글