파이썬에서 타입 변환(Type Conversion)은 데이터 타입을 다른 타입으로 변환하는 작업을 의미한다. 이를 통해 변수의 데이터 타입을 변경하여 다양한 상황에서 유용하게 활용할 수 있다. 타입 변환은 크게 암시적(Implicit) 타입 변환과 명시적(Explicit) 타입 변환으로 나눌 수 있다.
1. 암시적 타입 변환 (Implicit Type Conversion)
암시적 타입 변환은 파이썬이 자동으로 수행하는 타입 변환이다. 주로 작은 범위의 타입에서 큰 범위의 타입으로 변환될 때 발생한다.
# 정수형과 실수형의 암시적 변환
integer_num = 10
float_num = 3.14
result = integer_num + float_num # 정수형(integer_num)이 실수형(float)으로 변환됨
print(result) # 출력: 13.14
print(type(result)) # 출력: <class 'float'>
이 예제에서 integer_num은 정수형이고, float_num은 실수형이다. 두 값을 더할 때 파이썬은 자동으로 integer_num을 실수형으로 변환하여 연산을 수행한다.
2. 명시적 타입 변환 (Explicit Type Conversion)
명시적 타입 변환은 프로그래머가 직접 타입 변환 함수를 사용하여 데이터 타입을 변환하는 작업이다. 파이썬에서는 여러 내장 함수를 통해 타입 변환을 명시적으로 수행할 수 있다.
정수형으로 변환 (int())
# 실수를 정수로 변환
float_num = 3.14
int_num = int(float_num)
print(int_num) # 출력: 3
# 문자열을 정수로 변환
str_num = "123"
int_num = int(str_num)
print(int_num) # 출력: 123
실수형으로 변환 (float())
# 정수를 실수로 변환
int_num = 10
float_num = float(int_num)
print(float_num) # 출력: 10.0
# 문자열을 실수로 변환
str_num = "3.14"
float_num = float(str_num)
print(float_num) # 출력: 3.14
문자열로 변환 (str())
# 정수를 문자열로 변환
int_num = 123
str_num = str(int_num)
print(str_num) # 출력: "123"
# 실수를 문자열로 변환
float_num = 3.14
str_num = str(float_num)
print(str_num) # 출력: "3.14"
불리언형으로 변환 (bool())
# 0은 False로 변환
print(bool(0)) # 출력: False
# 0이 아닌 수는 True로 변환
print(bool(123)) # 출력: True
# 빈 문자열은 False로 변환
print(bool("")) # 출력: False
# 비어있지 않은 문자열은 True로 변환
print(bool("hello")) # 출력: True
리스트로 변환 (list())
# 문자열을 리스트로 변환
str_value = "hello"
list_value = list(str_value)
print(list_value) # 출력: ['h', 'e', 'l', 'l', 'o']
# 튜플을 리스트로 변환
tuple_value = (1, 2, 3)
list_value = list(tuple_value)
print(list_value) # 출력: [1, 2, 3]
튜플로 변환 (tuple())
# 리스트를 튜플로 변환
list_value = [1, 2, 3]
tuple_value = tuple(list_value)
print(tuple_value) # 출력: (1, 2, 3)
# 문자열을 튜플로 변환
str_value = "hello"
tuple_value = tuple(str_value)
print(tuple_value) # 출력: ('h', 'e', 'l', 'l', 'o')
집합으로 변환 (set())
# 리스트를 집합으로 변환
list_value = [1, 2, 2, 3, 3, 3]
set_value = set(list_value)
print(set_value) # 출력: {1, 2, 3}
# 문자열을 집합으로 변환
str_value = "hello"
set_value = set(str_value)
print(set_value) # 출력: {'h', 'e', 'l', 'o'}
딕셔너리로 변환 (dict())
딕셔너리로 변환할 때는 키-값 쌍의 시퀀스를 사용해야 한다.
# 리스트를 딕셔너리로 변환
list_of_tuples = [('a', 1), ('b', 2), ('c', 3)]
dict_value = dict(list_of_tuples)
print(dict_value) # 출력: {'a': 1, 'b': 2, 'c': 3}