형 변환의 특징을 출력 예시를 통해 알아봅니다.
자료형(Data Type)을 다른 형태(Type)로 변환하는 것.
파이썬에서 제공하는 함수를 이용하여 자료형 변환이 가능.
연산이나 메모리 사용의 효율을 위해 형 변환을 활용.
변환 함수: str()
str
)으로 변환.int
to str
a = 123
b = str(a)
print("a의 출력 결과: {} / a의 자료형: {}".format(a, type(a)))
print("b의 출력 결과: {} / b의 자료형: {}".format(b, type(b)))
a의 출력 결과: 123 / a의 자료형: <class 'int'>
b의 출력 결과: 123 / b의 자료형: <class 'str'>
float
to str
c = 1.23
d = str(c)
print("c의 출력 결과: {} / c의 자료형: {}".format(c, type(c)))
print("d의 출력 결과: {} / d의 자료형: {}".format(d, type(d)))
c의 출력 결과: 1.23 / c의 자료형: <class 'float'>
d의 출력 결과: 1.23 / d의 자료형: <class 'str'>
bool
to str
e = True
f = str(e)
print("e의 출력 결과: {} / e의 자료형: {}".format(e, type(e)))
print("f의 출력 결과: {} / f의 자료형: {}".format(f, type(f)))
e의 출력 결과: True / e의 자료형: <class 'bool'>
f의 출력 결과: True / f의 자료형: <class 'str'>
변환 함수: int()
int
의 형태를 가진 str
은 int
로 변환 가능.float
은 int
로 변환 가능. 단, 소수점 이하는 버림.str
)은 정수형(int
)으로 변환 불가.str
의 경우 "11.00"
처럼 float
형태의 텍스트는 int
로 변환 불가.bool
의 형태는 int
로 변환 가능.True
값은 숫자 1
로 변환.False
값은 숫자 0
으로 변환.str
to int
a = "11"
b = int(a) # int의 형태를 가진 str은 int로 변환 가능
print("a의 출력 결과: {} / a의 자료형: {}".format(a, type(a)))
print("b의 출력 결과: {} / b의 자료형: {}".format(b, type(b)))
a의 출력 결과: 11 / a의 자료형: <class 'str'>
b의 출력 결과: 11 / b의 자료형: <class 'int'>
float
to int
c = 11.99 # float은 int로 변환 가능. 단, 소수점 이하는 버림
d = int(c)
print("c의 출력 결과: {} / c의 자료형: {}".format(c, type(c)))
print("d의 출력 결과: {} / d의 자료형: {}".format(d, type(d)))
c의 출력 결과: 11.99 / c의 자료형: <class 'float'>
d의 출력 결과: 11 / d의 자료형: <class 'int'>
bool
to int
e = True # True의 값은 숫자 "1"과 동일
f = int(e) # bool의 형태는 int로 변환 가능
g = False # False의 값은 숫자 "0"과 동일
h = int(g) # bool의 형태는 int로 변환 가능
print("e의 출력 결과: {} / e의 자료형: {}".format(e, type(e)))
print("f의 출력 결과: {} / f의 자료형: {}".format(f, type(f)),"\n")
print("g의 출력 결과: {} / g의 자료형: {}".format(g, type(g)))
print("h의 출력 결과: {} / h의 자료형: {}".format(h, type(h)))
e의 출력 결과: True / e의 자료형: <class 'bool'>
f의 출력 결과: 1 / f의 자료형: <class 'int'>
g의 출력 결과: False / g의 자료형: <class 'bool'>
h의 출력 결과: 0 / h의 자료형: <class 'int'>
변환 함수: float()
str
은 float
으로 변환 가능.str
)은 실수형(float
)으로 변환 불가.int
는 float
으로 변환 가능 float
은 항상 소수점 이하 자리를 표기bool
의 형태는 float
로 변환 가능.True
값은 숫자 1.0
로 변환.False
값은 숫자 0.0
으로 변환.str
to float
a = "11"
b = float(a) # 숫자 형태를 가진 str은 float으로 변환 가능
c = "22.00"
d = float(c) # 숫자 형태를 가진 str은 float으로 변환 가능
print("a의 출력 결과: {} / a의 자료형: {}".format(a, type(a)))
print("b의 출력 결과: {} / b의 자료형: {}".format(b, type(b)),"\n")
print("c의 출력 결과: {} / c의 자료형: {}".format(c, type(c)))
print("d의 출력 결과: {} / d의 자료형: {}".format(d, type(d)))
a의 출력 결과: 11 / a의 자료형: <class 'str'>
b의 출력 결과: 11.0 / b의 자료형: <class 'float'>
c의 출력 결과: 22.00 / c의 자료형: <class 'str'>
d의 출력 결과: 22.0 / d의 자료형: <class 'float'>
int
to float
e = 33
f = float(e) # int는 float으로 변환 가능
print("e의 출력 결과: {} / e의 자료형: {}".format(e, type(e)))
print("f의 출력 결과: {} / f의 자료형: {}".format(f, type(f)))
e의 출력 결과: 33 / e의 자료형: <class 'int'>
f의 출력 결과: 33.0 / f의 자료형: <class 'float'>
bool
to float
g = True # True의 값은 숫자 "1"과 동일
h = float(g) # bool의 형태는 float으로 변환 가능
i = False # False의 값은 숫자 "0"과 동일
j = float(i) # bool의 형태는 float으로 변환 가능
print("g의 출력 결과: {} / g의 자료형: {}".format(g, type(g)))
print("h의 출력 결과: {} / h의 자료형: {}".format(h, type(h)),"\n")
print("i의 출력 결과: {} / i의 자료형: {}".format(i, type(i)))
print("j의 출력 결과: {} / j의 자료형: {}".format(j, type(j)))
g의 출력 결과: True / g의 자료형: <class 'bool'>
h의 출력 결과: 1.0 / h의 자료형: <class 'float'>
i의 출력 결과: False / i의 자료형: <class 'bool'>
j의 출력 결과: 0.0 / j의 자료형: <class 'float'>
변환 함수: bool()
bool
로 변환 가능.True
or False
를 규정하는 것은 데이터의 유(有) or 무(無).0
의 경우 False
로 변환.0
이 아닌 숫자는 True
로 변환.str
(""
)은 False
로 변환.str
(" "
)이므로 True
로 변환."False"
인 str
역시 "False"
라는 데이터를 가지고 있으므로 True
로 변환.int
to bool
a = 0 # int는 bool로 변환 가능
b = bool(a) # 숫자 0의 경우 False로 변환
print("a의 출력 결과: {} / a의 자료형: {}".format(a, type(a)))
print("b의 출력 결과: {} / b의 자료형: {}".format(b, type(b)))
a의 출력 결과: 0 / a의 자료형: <class 'int'>
b의 출력 결과: False / b의 자료형: <class 'bool'>
float
to bool
c = 0.2 # float은 bool로 변환 가능
d = bool(c) # 0이 아닌 숫자는 True로 변환
print("c의 출력 결과: {} / c의 자료형: {}".format(c, type(c)))
print("d의 출력 결과: {} / d의 자료형: {}".format(d, type(d)))
c의 출력 결과: 0.2 / c의 자료형: <class 'float'>
d의 출력 결과: True / d의 자료형: <class 'bool'>
str
to bool
e = ""
f = bool(e) # 아무것도 없는 str은 False로 변환
g = "False" # 내용에 상관없이 문자열이 있는 것으로 간주
h = bool(g) # 내용이 있는 str은 True로 변환
i = "0" # str은 숫자가 아니므로 문자열이 있는 것으로 간주
j = bool(i) # 내용이 있는 str은 True로 변환
k = " " # 공백문자(띄어쓰기 등) 역시 문자열이 있는 것으로 간주
l = bool(k) # 내용이 있는 str은 True로 변환
print("e의 출력 결과: {} / e의 자료형: {}".format(e, type(e)))
print("f의 출력 결과: {} / f의 자료형: {}".format(f, type(f)),"\n")
print("g의 출력 결과: {} / g의 자료형: {}".format(g, type(g)))
print("h의 출력 결과: {} / h의 자료형: {}".format(h, type(h)),"\n")
print("i의 출력 결과: {} / i의 자료형: {}".format(i, type(i)))
print("j의 출력 결과: {} / j의 자료형: {}".format(j, type(j)),"\n")
print("k의 출력 결과: {} / k의 자료형: {}".format(k, type(k)))
print("l의 출력 결과: {} / l의 자료형: {}".format(l, type(l)))
e의 출력 결과: / e의 자료형: <class 'str'>
f의 출력 결과: False / f의 자료형: <class 'bool'>
g의 출력 결과: False / g의 자료형: <class 'str'>
h의 출력 결과: True / h의 자료형: <class 'bool'>
i의 출력 결과: 0 / i의 자료형: <class 'str'>
j의 출력 결과: True / j의 자료형: <class 'bool'>
k의 출력 결과: / k의 자료형: <class 'str'>
l의 출력 결과: True / l의 자료형: <class 'bool'>