더북(TheBook)

문제는 피연산자가 정수형이지만 실수형 결과를 기대한다는 사실 때문에 발생한다. 따라서 도중에 정수에서 실수로 형을 변환해야 한다. 파이썬에서는 형을 변환하기 위해 명시적인 방법이나 암시적인 방법을 사용한다.

명시적 형 변환 먼저 어떤 형의 인수를 받아 다른 형의 객체를 반환하는 함수를 사용하는 방법이 있다. 우리는 문자열에서 정수나 실수로, 그리고 숫자를 문자열로 변환하기 위해 이미 int(), float(), str() 내장 함수를 사용해왔다. 이와 같이 문자열과 숫자 간의 형 변환을 가장 흔히 볼 수 있지만, [표 1.2.17]에서 보는 것처럼 정수에서 실수로, 실수에서 정수로 변환하기 위해서도 사용할 수 있다. 예를 들어 int(x)int(round(x))를 이용해 실수를 정수로, float(x)를 이용해 정수를 실수로 변환할 수 있다. 따라서 float(1 + 2 + 3 + 4) / float(4)는 우리가 원하는 대로 파이썬 3와 파이썬 2에서 모두 2.5로 평가된다.

▼ 표 1.2.17 내장된 형 변환 함수들의 API

함수

설명

str(x)

x 객체를 문자열로 변환

int(x)

문자열 x를 정수로 변환하거나, 실수 x를 버림하여 정수로 변환

float(x)

문자열이나 정수 x를 실수로 변환

round(x)

숫자 x에 가장 가까운 정수로 변환

 

파이썬 2 주의 | round(x)가 파이썬 3에서는 정수를, 파이썬 2에서는 실수를 반환한다. 이 책에서는 실수 x에 가장 가까운 정수로 변환하기 위해 언제나 int(round(x)) 표현식을 사용하므로, 이 코드는 파이썬 3와 파이썬 2에서 모두 제대로 실행된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.