본문 바로가기
Python/파이썬 기초

숫자형 자료형과 관련된 내장함수 - 파이썬 기초(10)

by 콩돌 2018. 12. 4.
반응형

참고 자료

https://docs.python.org/3/library/functions.html


파이썬 버전 3.7 기준



숫자형 자료형과 관련된 내장함수


본 포스팅에서 다루는 함수는 다음과 같다.

abs(), round(), pow(), divmod(), sum(), min(), max() 등.

숫자형 자료형으로 변경해주는 내장함수(int(), float(), complex()) 등에 대한 내용은 여기를 참고한다.


간단한 수학 연산과 관련된 내장함수


abs(x)

  ○ 입력 숫자형 변수 x의 절대값을 반환한다.

  ○ 숫자형 변수 즉 정수 혹은 실수형만 가능하다.

  ○ 복소수인 경우 그 크기가 반환된다.


사용 예)

In[2]: abs(-1)

Out[2]: 1

In[3]: abs(-1.)

Out[3]: 1.0

In[4]: abs(5.)

Out[4]: 5.0

In[5]: abs(5)

Out[5]: 5

In[6]: abs(1+5j)

Out[6]: 5.099019513592785


pow(x, y[, z])

  ○ x의 y거듭제곱을 반환한다.

    ▷ x**y와 동일하다.

  ○ z가 있는 경우 pow(x,y)%z의 값과 동일한 값을 출력한다. 

    ▷ 하지만 계산의 속도는 pow(x,y,z)가 더빠르다. 

  ○ 숫자형만 사용이 가능하다. 

    ▷ 입력 출력 모두가 정수인 경우 정수형이 출력되지만, 입력중 하나라도 실수형이면 실수형을 출력하고, 입력이 정수형이더라도 출력이 실수형으로 출력되어야 하는 상황이면(예를들어, pow(10, -2)) 실수형을 출력한다.

    ▷ z가 있는 경우 x와 y는 정수형이여야 하고 y는 음수가 아니어야 한다.


사용 예)

In[35]: pow(2,5)%3

Out[35]: 2

In[36]: pow(2,5.5)%3

Out[36]: 0.25483399593904466

In[37]: pow(2,5.5)

Out[37]: 45.254833995939045

In[38]: pow(5.5,2)

Out[38]: 30.25

In[39]: pow(5.0,2)

Out[39]: 25.0


divmod(x,y)

  ○ x와 y 두개의 숫자를 인자를 입력으로 받아 x를 y로 나눈 몫과 나머지를 반환한다.

  ○ 즉, (x//y, x%y)의 결과를 반환한다.


사용 예)

In[43]: divmod(27.0, 5)

Out[43]: (5.0, 2.0)

In[44]: divmod(32, 9)

Out[44]: (3, 5)



이터레이블(iterable)한 객체를 입력으로 받을 수 있는 내장함수


※ 이터레이블(iterable)?

  ○ 먼저 쉽게 설명하면 리스트와 튜플과 같은 시퀀스형 자료형 대부분은 이터레이블하다.

  ○ 자료형이 아니라도 이터레이블한 경우가 있지만 이터레이블에 대한 자세한 설명은 여기를 참고한다.


sum(iterable[, start])

  ○ iterable(시퀀스형 자료형, 리스트, 튜플 등)의 항목을 왼쪽에서 오른쪽으로 합한 합계를 반환한다.

  ○ start가 입력될 경우 start를 더하고 iterable을 더하기 시작한다.

    ▷ start의 기본값은 0이다.

  ○ iterable에 있는 문자(열)들을 하나의 문자열로 출력하고 싶다면 sum()함수가 아니라 아래 예와같이 join()함수를 이용하는 것을 권장한다.


사용 예)

In[58]: sum([1,2,3,4,5,6,7])

Out[58]: 28

In[59]: sum([1,2,3,4,5,6,7], -20)

Out[59]: 8

In[60]: ''.join(['g','o','o','d'])

Out[60]: 'good'



min(iterable[, key, default]) or min(x1, x2, x3, ... [, key]

  ○ 입력 자료가 하나인 경우에는 iterable(예를들어 리스트나 튜플)같은 객체여야한다. 

    ▷ 이 경우 입력 숫자형 변수의 콜랙션(리스트, 튜플, 집합 등)인 x의 최소값을 반환한다.

    ▷ default는 입력 객체가 비어있는 형태일 경우 반환하는 인자를 정의한다.

  ○ 인자가 여러개 입력될 경우 일반적인 숫자형 자료형도 입력이 가능하며, 정수와 실수형을 섞어 쓰는 것도 가능하다. 

  ○ key인자는 sorted함수의 key와 동일한 컨셉이다.


사용 예) 

In[8]: min([1,2,3,4,5])

Out[8]: 1

In[9]: min(1,2,3,4,5)

Out[9]: 1


In[10]: a = [(1,'good', 3), (2, 'ko', 2), (3, 'fighing', 1)]

In[11]: min(a)

Out[11]: (1, 'good', 3)

In[12]: min(a, key= lambda gg: gg[2])

Out[12]: (3, 'fighing', 1)


max(iterable[, key, default]) or max(x1, x2, x3, ... [, key]

  ○ 최대값을 반환하는 것을 제외하고는 min()함수와 동일하다.



소수점 반올림을 하는 round() 내장함수


파이썬에서 round() 함수는 메커니즘이 약간 이상하므로 따로 섹션을 나눠 설명한다.


round(number[, ndigits])

  ○ 기본적으로는 입력 변수 number를 반올림 한 값을 돌려준다. 

  ○ ndigits이 생략될 경우 소수점 첫째자리에서 반올림하여 정수형태로 돌려준다.

  ○ ndigits은 정수형태로 입력되며 소수점 자리수를 의미한다. 바꿔말하면 10의 -ndigits에 가까운 배수로 반올림된다.

    ▷ ndigits이 -1값일 경우 정수 첫째자리에서 반올림을 수행하며, 값이 커질수록 자릿수가 위로 올라간다. 


주의: 파이썬의 round()함수에는 특이한 특징이 있는데 반올림을 하려는 자리수에서 올림하기 위해 필요한 값과 내림을 하기 위해 필요한 값이 같다면 짝수를 선택한다는 것이다. 예를들어, round(0.5)와 round(-0.5)는 0을 출력한다.따라서 0.5와 같은 상황에서 반올림을 수행할 경우 주의를 요한다.


사용 예) 

In[21]:  round(2.5)

Out[21]: 2

In[22]: round(-2.5)

Out[22]: -2

In[23]: round(-3.5)

Out[23]: -4

In[24]: round(-4.5)

Out[24]: -4

In[25]: round(-4.6)

Out[25]: -5

In[26]: round(5555.556, 2)

Out[26]: 5555.56

In[27]: round(5555.556, -2)

Out[27]: 5600.0




숫자형 자료형으로 변경해주는 내장함수


앞의 자료형 포스팅과 중복되므로 자료형 내장함수 포스팅을 링크를 거는 것으로 마무리 하도록한다. 


반응형

댓글