형 변환 프로그래밍할 때는 보통 여러 데이터 타입을 처리하게 된다. 데이터 타입을 알아야 객체가 정확히 어떤 값을 가질 수 있고, 객체에 어떤 연산을 수행할 수 있는지 알 수 있으므로, 프로그램이 처리할 데이터의 타입을 늘 알고 있어야 한다. 특히 어떤 데이터 타입에서 다른 데이터 타입으로 변환해야 하는 일이 종종 생긴다. 예를 들어 1
, 2
, 3
, 4
, 네 개의 정수의 평균을 구하려 한다고 생각해보자. 자연스럽게 표현식 (1 + 2 + 3 + 4) / 4
가 떠오르겠지만, 형 변환 때문에 이 표현식으로는 원하는 결과가 나오지 않는 프로그래밍 언어가 많다. 앞에서도 설명한 것처럼 이 표현식은 파이썬 3와 파이썬 2에서 서로 다른 결과가 나온다. 이 표현식은 형 변환을 설명하기에 좋은 예이다.
▼ 표 1.2.16 형 변환 예
표현식 |
값 |
형 |
명시적 |
||
str(2.718) |
'2.718' |
str |
str(2) |
'2' |
str |
int(2.718) |
2 |
int |
int(3.14159) |
3 |
int |
float(3) |
3.0 |
float |
int(round(2.718)) |
3 |
int |
암시적 |
||
3.0 * 2 |
6.0 |
float |
10 / 4.0 |
2.5 |
float |
math.sqrt(4) |
2.0 |
float |