0%

파이썬 자료구조와 알고리즘 - 숫자

CH 1 : 숫자

정수

  • 파이썬에서 정수는 int 로 나타내며, 불변형이다.

부동소수점

  • 부동소수점은 IEEE 754 표준을 따른다. 파이썬에서 부동소수점은 float로 나타내고, 불변형이다

    • 부동소수점은 이진수로 표현되기 때문에. 함부로 비교하거나 연산하면 안 된다. 예를 들어,

      1
      2
      In : 0.1 + 0.2 == 0.3
      Out: False

      이런 식으로, 논리적으로 맞는 연산이어도 값은 다르게 나오게 된다. 0.1은 이진수로 0.00110011001100…..으로 표현되기 때문에, 연산 시에 정확한 값이 나오지 않을 것이다.

    • 정확한 계산을 위해서는, 파이썬 모듈인 decimal을 사용하면 된다.

      1
      2
      3
        from decimal import Decimal
      In : Decimal('0.1') + Decimal('0.2') == Decimal('0.3')
      Out: True

      이렇게 계산이 정확하게 나오게 된다.

정수와 부동소수점 메서드

  • 파이썬의 나누기 연산자(/)는 항상 부동소수점을 반환한다. 정수 나누기 연산자(//)도 존재한다.
  • % 연산자는 나머지를 반환한다.
  • divmod(x, y) 매서드
    • x를 y로 나눌 때의 몫과 나머지를 반환한다.
    • divmod(x, y) return : (x//y, x%y)
  • round(x, n) 매서드
    • n이 음수일 때 : x를 n번째 자리에서 반올림한 값
    • n이 양수일 때 : x를 소수점 n번째 이하 자리로 반올림한 값

2진수, 8진수, 16진수

  • 파이썬에는 2진수, 8진수, 16진수를 반환하는 함수가 존재한다.
    • 2진수 : bin(string)
    • 8진수 : oct(string)
    • 16진수 : hex(string)