Python - 형 변환

안녕하세요, 미래의 Python 마법사들! 오늘은 Python에서의 형 변환의 흥미로운 세계로 여행을 떠날 거예요. 이 표현을 처음 들어보신다고 해도 걱정 마세요. 이 튜토리얼 끝까지 따라오시면, 형 변환을 전문가처럼 사용하게 될 거예요!

Python - Type Casting

형 변환이란?

먼저, 간단한 비유로 시작해볼게요. 레고 블록이 있는 상자를 생각해봅시다. 몇몇은 둥글고, 몇몇은 정사각형이고, 심지어 별 모양도 있을 수 있죠. 형 변환은 마법의 지팡이로 한 모양을 다른 모양으로 변환하는 것과 같아요. Python에서는 레고 모양대신 데이터 타입을 변환하는 거예요!

Python의 묵시적 형 변환

Python은 매우 똑똑합니다. 때로는 당신이 요청하지 않은 상태에서도 자동으로 한 데이터 타입을 다른 타입으로 변환합니다. 이를 묵시적 형 변환이라고 합니다.

예를 들어보죠:

x = 5    # 이것은 정수입니다
y = 2.0  # 이것은 부동소수점입니다
z = x + y

print(z)
print(type(z))

이 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다:

7.0
<class 'float'>

와우! Python은 우리가 정수 x를 부동소수점 y에 더했을 때 자동으로 정수를 부동소수점으로 변환했어요. Python은 생각커버를 쓰고 "음, 정수와 부동소수점을 직접 더할 수 없으니, 먼저 정수를 부동소수점으로 변환하자!"라고 말하는 것 같아요!

Python의 명시적 형 변환

이제, 우리가 Python에게 정확히 어떤 타입을 원하는지 말고 싶다면 어떻게 해야 하죠? 이럴 때 명시적 형 변환을 사용합니다. 이는 마법의 지팡이를 의도적으로 사용하여 데이터를 변환하는 것과 같아요.

Python은 이러한 목적으로 여러 내장 함수를 제공합니다. 가장 일반적인 함수들을 살펴보죠:

Python int() 함수

int() 함수는 값을 정수로 변환합니다. 실제로 보죠:

a = int(3.14)
b = int("42")
c = int(True)

print(a, type(a))
print(b, type(b))
print(c, type(c))

출력:

3 <class 'int'>
42 <class 'int'>
1 <class 'int'>

보시죠, int()는 부동소수점, 문자열(유효한 정수로 표현된 경우), 심지어 불리언도 정수로 변환할 수 있습니다. 그것은 숫자에 대한 형 변환자와 같아요!

Python float() 함수

float() 함수는 값을 부동소수점으로 변환하는 데 사용됩니다:

x = float(5)
y = float("3.14")
z = float("inf")

print(x, type(x))
print(y, type(y))
print(z, type(z))

출력:

5.0 <class 'float'>
3.14 <class 'float'>
inf <class 'float'>

보여주죠! 우리는 정수, 문자열, 심지어 무한한 개념을 부동소수점으로 변환했어요. 그것은 sold Lego 블록을 물로 변환하는 것과 같아요 - 이제 소수점을 가지고 흐르고 있죠!

Python str() 함수

마지막으로, str() 함수가 있습니다. 이 함수는 거의 모든 것을 문자열로 변환할 수 있는 이야기꾼과 같아요:

a = str(42)
b = str(3.14)
c = str(True)
d = str([1, 2, 3])

print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))

출력:

42 <class 'str'>
3.14 <class 'str'>
True <class 'str'>
[1, 2, 3] <class 'str'>

驚き吧! 우리는 숫자, 불리언, 심지어 리스트를 문자열로 변환했어요. str() 함수는 우리가 주는 것마다 흥미로운 그림을 그릴 수 있는 마스터 페인터와 같아요!

시퀀스 타입의 변환

이제, 서로 다른 시퀀스 타입 간의 변환에 대해 이야기해볼게요. Python에는 목록, 튜플, 집합과 같은 여러 내장 시퀀스 타입이 있습니다. 이 타입들 간의 변환은 각각의 함수를 사용하여 할 수 있습니다:

# 목록을 튜플로 변환
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple, type(my_tuple))

# 튜플을 집합으로 변환
my_set = set(my_tuple)
print(my_set, type(my_set))

# 집합을 다시 목록으로 변환
back_to_list = list(my_set)
print(back_to_list, type(back_to_list))

출력:

(1, 2, 3, 4, 5) <class 'tuple'>
{1, 2, 3, 4, 5} <class 'set'>
[1, 2, 3, 4, 5] <class 'list'>

이렇게 우리는 데이터를 한 타입에서 다른 타입으로 이동하는 데 음악의 의자 게임을 하고 있는 것처럼 보이죠!

데이터 타입 변환 함수

우리가 배운 모든 형 변환 함수를 편리한 표로 정리해볼게요:

함수 설명 예시
int() 정수로 변환 int("42") → 42
float() 부동소수점으로 변환 float("3.14") → 3.14
str() 문자열로 변환 str(42) → "42"
bool() 불리언으로 변환 bool(1) → True
list() 목록으로 변환 list((1, 2, 3)) → [1, 2, 3]
tuple() 튜플로 변환 tuple([1, 2, 3]) → (1, 2, 3)
set() 집합으로 변환 set([1, 2, 2, 3]) → {1, 2, 3}

이 함수들은 Python에서의 스위스 Army 펜슬처럼 매우 다양한 상황에서 도움이 되는 도구입니다!

그리고 이렇게 끝내죠! 우리는 Python의 형 변환에 대한 여정을 묵시적 변환에서 명시적 변환으로 거쳤어요. Python이 자동으로 타입을 변환하는 방법과 우리가 직접 타입을 변환하는 방법을 배웠어요.

기억하죠, 형 변환은 Python 도구箱에 강력한 도구입니다. 데이터를 필요에 맞게 형태를 만들 수 있게 해줍니다. 정도는 피겨리스트가 석고를 아름다운 동상으로 변환하는 것과 같아요. 연습하면 나중에는 전문가처럼 형 변환을 할 수 있을 거예요!

그래서 가자, 젊은 Pythonista여러분, 형 변환을 해보세요! 그리고 항상 기억하죠 - Python의 세계에서는 모든 타입이 자리가 있지만, 형 변환의 힘을 통해 타입은 바뀌 수 있습니다. 즐거운 코딩!

Credits: Image by storyset