파이썬 API 둘러보기

간단한 계산

abs(), round(), pow(), divmod(), eval(), len(), min(), max(), sum()

abs()

생략

 

round()

>>> round(3.141592656, 3)
3.142

 

주의: 0.5를 반올림하면 0이다(?)

원인은 부동소수점 표현의 정확성? 때문인데 decimal 을 쓰면 보완될 것 같다.

>>> round(0.5)
0 

 

좋은 방법인지는 모르겠지만 이렇게 회피할 수 있다.

>>> round(0.5 + 0.000000001)
1

 

pow()

math.pow()와 '**' 연산자와 거의 같다. 완전히 같지는 않다(참고).

 

divmod(A, B)

몫과 나머지 

>>> divmod(15, 4)
(3, 3)

>>> divmod(5, 0.6)
(8.0, 0.20000000000000018)

 

min(), max()

특이하게 *args 와 iterable 둘 다 지원한다.

이런 경우 잘 없다.

>>> max(1,2,3)
3

>>> max([1,2,3])
3

>>> max([('kim',80), ('choi', 65), ('park', 92)], key=lambda x: x[1])
('park', 92)

>>> import operator
>>> max([('kim',80), ('choi', 65), ('park', 92)], key=operator.itemgetter(1))
('park', 92)

>>> max([(80,'kim'), (65,'choi'), (92,'park')])
(92, 'park')

마지막은 tuple 비교 순서를 이용한 예이다. 튜플, 리스트 등은 앞의 원소부터 비교한다.

(1, 5) < (2, 3) -> 1 < 2 -> True
(1, 5) < (1, 6) -> 1 == 1 and 5 < 6 -> True

 

len(), sum()

생략

 

eval()

>>> eval('1+2')
3

>>> a=3
>>> eval('a+2')
5

다른 언어의 exec()에 해당한다.

어떤 언어를 쓰든, 아예 쓰지 않거나 쓴다면 위험성을 알고 극히 조심스럽게 쓰기를 강하게 권고한다. 참고

 

댓글

댓글 본문
작성자
비밀번호
버전 관리
장과장02
현재 버전
선택 버전
graphittie 자세히 보기