Q. 인수의 소수점 부분이 0.5
일 때 round()
는 어떤 값을 반환하는가?
A. 파이썬 3에서 round()
는 가장 가까운 정수를 반환한다. 즉 round(2.5)
는 2
, round(3.5)
는 4
, round(-2.5)
는 -2
를 반환한다. 그러나 파이썬 2에서 round()
는 0
에서 반올림하고 실수형으로 변환해 반환한다. 즉 round(2.5)
는 3.0
, round(3.5)
는 4.0
, round(-2.5)
는 -3.0
을 반환한다.
Q. float
형과 int
형을 비교할 수 있는가?
A. 형을 변환해야 비교할 수 있다. 그러나 파이썬이 필요한 형 변환을 자동으로 해준다는 사실을 잊지 말자. 예를 들어 x
가 정수 3
이면 표현식 (x < 3.1)
은 정수 3
을 실수 3.0
으로 승격한 후 3.0
과 3.1
을 비교해 True
를 반환한다.
Q. 파이썬의 math
모듈은 아크 사인, 쌍곡선 사인, 시컨트 등 다른 삼각함수도 제공하는가?
A. 그렇다. 파이썬의 math
모듈은 역삼각함수와 쌍곡선 함수들도 제공한다. 그러나 math.sin()
, math.cos()
, math.tan()
를 이용해 쉽게 계산할 수 있으므로 별도의 시컨트, 코시컨트, 코탄젠트 등의 함수는 제공하지 않는다. API에 어떤 함수를 포함시킬지 판단할 때는 필요한 모든 함수를 제공함으로써 얻어지는 편리함과 아주 긴 목록에서 필요한 함수를 찾아내는 번거로움 간의 적절한 조절이 필요하다. 어떤 것을 선택하더라도 모든 사용자를 만족시킬 수는 없고 파이썬은 만족시켜야 할 사용자가 아주 많다. 이미 API에 포함된 함수들 중에서도 중복되는 것은 아주 많다. 예를 들어 math.sin(x) / math.cos(x)
를 간단히 계산할 수 있으므로 math.tan(x)
는 필요 없다.