Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) 데이터 유형 변환 함수 총정리

프로그래밍을 하다 보면 서로 다른 데이터 유형 간의 변환이 필요한 경우가 자주 발생합니다. 파이썬에서는 유형을 변환할 때 해당 타입 이름을 함수처럼 호출하기만 하면 됩니다. 예를 들어 int("10")처럼 작성하면 문자열이 정수로 변환됩니다.

파이썬은 한 데이터 유형을 다른 유형으로 변환할 수 있는 다양한 내장 함수를 제공하며, 이러한 함수들은 변환된 값을 나타내는 새로운 객체를 반환합니다. 아래 표에서 주요 형 변환 함수와 그 설명을 확인해 보세요.

파이썬 주요 데이터 유형 변환 함수

번호함수 및 설명
1int(x [,base])
x를 정수로 변환합니다. x가 문자열일 경우 base 매개변수로 진수(2진수, 8진수 등)를 지정할 수 있습니다.
2long(x [,base])
x를 long 정수로 변환합니다. base는 x가 문자열일 때 진수를 지정합니다.(※ Python 2 전용 함수이며, Python 3에서는 int가 임의 정밀도 정수를 지원하므로 더 이상 필요하지 않습니다.)
3float(x)
x를 부동 소수점 숫자(float)로 변환합니다.
4complex(real [,imag])
복소수를 생성합니다. real은 실수부, imag는 허수부를 의미합니다.
5str(x)
객체 x를 사람이 읽기 좋은 문자열 표현으로 변환합니다.
6repr(x)
객체 x를 인터프리터가 해석 가능한 표현식 문자열로 변환합니다.
7eval(str)
문자열을 파이썬 표현식으로 평가(evaluate)하고 그 결과 객체를 반환합니다.
8tuple(s)
s를 튜플(tuple)로 변환합니다.
9list(s)
s를 리스트(list)로 변환합니다.
10set(s)
s를 집합(set)으로 변환합니다. 중복 요소는 자동으로 제거됩니다.
11dict(d)
딕셔너리(dictionary)를 생성합니다. d는 반드시 (키, 값) 형태의 튜플 시퀀스여야 합니다.
12frozenset(s)
s를 변경 불가능한 집합(frozenset)으로 변환합니다.
13chr(x)
정수를 해당하는 문자로 변환합니다.
14unichr(x)
정수를 유니코드 문자로 변환합니다.(※ Python 2 전용 함수이며, Python 3에서는 chr()이 유니코드 문자를 처리합니다.)
15ord(x)
단일 문자를 그에 대응하는 정수 값(유니코드 코드 포인트)으로 변환합니다.
16hex(x)
정수를 16진수(hexadecimal) 문자열로 변환합니다.
17oct(x)
정수를 8진수(octal) 문자열로 변환합니다.

형 변환 함수 활용 예시

실제 코드에서 이러한 함수들이 어떻게 동작하는지 몇 가지 예시를 살펴보겠습니다.

# 문자열을 숫자로 변환
num = int("100")        # 결과: 100
pi = float("3.14")      # 결과: 3.14

# 2진수 문자열을 정수로 변환
binary = int("1010", 2) # 결과: 10

# 숫자를 문자열로 변환
text = str(12345)       # 결과: "12345"

# 문자와 정수 간 변환
char = chr(65)          # 결과: 'A'
code = ord('A')         # 결과: 65

# 진수 변환
hex_val = hex(255)      # 결과: '0xff'
oct_val = oct(8)        # 결과: '0o10'

암묵적 변환과 명시적 변환

파이썬의 형 변환은 크게 두 가지로 나뉩니다. 개발자가 직접 위의 함수를 호출하는 명시적 변환(explicit conversion)과, 파이썬 인터프리터가 자동으로 수행하는 암묵적 변환(implicit conversion)입니다. 예를 들어 정수와 실수를 더하면 파이썬이 자동으로 정수를 실수로 변환하여 연산합니다.

result = 5 + 2.0  # 암묵적으로 5가 5.0으로 변환되어 7.0 반환

다만 호환되지 않는 유형끼리 변환을 시도하면 ValueErrorTypeError가 발생할 수 있으므로, 변환 전에 데이터의 유효성을 검사하는 것이 안전합니다.