형 변환의 특징을 출력 예시를 통해 알아봅니다.
자료형(Data Type)을 다른 형태(Type)로 변환하는 것.
파이썬에서 제공하는 함수를 이용하여 자료형 변환이 가능.
연산이나 메모리 사용의 효율을 위해 형 변환을 활용.
변환 함수: str()
str)으로 변환.int to stra = 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 strc = 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 stre = 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 inta = "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 intc = 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 inte = 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 floata = "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 floate = 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 floatg = 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 boola = 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 boolc = 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 boole = ""
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'>