본문 바로가기
파이썬 문법

파이썬에서 형 변환(type casting 또는 type conversion)

by mdesign 2024. 8. 11.

컴퓨터 화면

파이썬에서 형 변환(type casting 또는 type conversion)은 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 과정입니다. 형 변환은 데이터 처리와 변환을 유연하게 처리할 수 있게 해줍니다. 파이썬에서는 여러 내장 함수를 사용하여 데이터 타입을 변환할 수 있습니다. 주요 형 변환 함수와 그 사용법에 대해 설명하겠습니다.


1. 문자열(str)으로 변환

str() : 숫자나 다른 데이터 타입을 문자열로 변환합니다.

x = 10
y = 3.14
z = True

x_str = str(x)  # '10'
y_str = str(y)  # '3.14'
z_str = str(z)  # 'True'
2. 정수(int)로 변환



int() : 문자열, 부동 소수점 수, 불린 값 등을 정수로 변환합니다. 문자열이 정수 형태일 때만 변환이 가능합니다.

x = "123"
y = 3.14
z = True

x_int = int(x)  # 123
y_int = int(y)  # 3 (소수점 이하 버림)
z_int = int(z)  # 1



문자열이 정수형으로 변환 불가능한 경우 예외 발생

# x = "123abc"
# x_int = int(x)  # ValueError: invalid literal for int() with base 10: '123abc'



3. 부동 소수점(float)으로 변환

float() : 문자열이나 정수, 부동 소수점 수를 부동 소수점으로 변환합니다.

x = "3.14"
y = 10
z = True

x_float = float(x)  # 3.14
y_float = float(y)  # 10.0
z_float = float(z)  # 1.0


4. 불린(bool)으로 변환

bool() : 다른 데이터 타입을 불린 값으로 변환합니다. 빈 문자열, 0, 빈 리스트 등은 False로 변환되고, 나머지 값은 True로 변환됩니다.

x = ""
y = "Hello"
z = 0
w = 1

x_bool = bool(x)  # False
y_bool = bool(y)  # True
z_bool = bool(z)  # False
w_bool = bool(w)  # True


5. 리스트(list)로 변환

list() : 다른 시퀀스 타입을 리스트로 변환합니다.

x = "hello"
y = (1, 2, 3)
z = {4, 5, 6}

x_list = list(x)  # ['h', 'e', 'l', 'l', 'o']
y_list = list(y)  # [1, 2, 3]
z_list = list(z)  # [4, 5, 6] (순서는 세트의 경우 예측할 수 없음)


6. 튜플(tuple)로 변환

tuple() : 다른 시퀀스 타입을 튜플로 변환합니다.

x = [1, 2, 3]
y = "abc"

x_tuple = tuple(x)  # (1, 2, 3)
y_tuple = tuple(y)  # ('a', 'b', 'c')


7. 세트(set)로 변환

set() : 다른 시퀀스 타입을 세트로 변환합니다. 세트는 중복을 허용하지 않으며 순서가 없습니다.

x = [1, 2, 2, 3]
y = "hello"

x_set = set(x)  # {1, 2, 3}
y_set = set(y)  # {'h', 'e', 'l', 'o'}


8. 딕셔너리(dict)로 변환

dict() : 리스트의 키-값 쌍 또는 다른 이터러블을 딕셔너리로 변환합니다. 이터러블은 (key, value) 쌍의 튜플을 포함해야 합니다.

x = [("name", "Alice"), ("age", 25)]
y = dict(x)  # {'name': 'Alice', 'age': 25}

# 잘못된 예시: [(1, 2), (3, 4)] -> {'1': 2, '3': 4}


9. 형 변환 시 유의사항

정수와 부동 소수점 변환: float()은 모든 정수를 부동 소수점으로 변환할 수 있지만, int()는 소수점 이하를 버리며 정수로 변환합니다.
문자열에서 정수, 부동 소수점 변환: 문자열이 올바른 형식이어야 합니다. 예를 들어, "123.45"는 float()로 변환할 수 있지만 int()로는 변환할 수 없습니다.


10. 예외 처리

형 변환 시 문자열이 올바른 형식이 아닌 경우 ValueError가 발생할 수 있으므로, try-except 블록을 사용하여 예외를 처리할 수 있습니다.

try:
    x = int("abc")
except ValueError:
    print("변환 오류 발생")



형 변환을 적절하게 활용하면 다양한 데이터 타입을 효과적으로 다룰 수 있습니다. 각 형 변환 함수의 사용법을 숙지하고, 데이터의 유형과 형식에 맞게 적절히 변환해 보세요.