
Python에서는 데이터 유형을 변환하는 기능을 제공하여 데이터를 필요에 따라 다르게 활용할 수 있습니다.
이를 형 변환(Type Casting)이라고 하며, 숫자형, 문자열, 리스트, 튜플, 집합 등 다양한 데이터 유형 간의 변환이 가능합니다.
이 장에서는 데이터 유형 변환의 기본 개념과 Python에서 사용되는 주요 변환 방법을 설명합니다.
1. 데이터 유형 변환이란?
데이터 유형 변환(Type Casting)은 특정 데이터 타입을 다른 타입으로 변경하는 작업입니다.
예를 들어:
• 문자열 "123"을 숫자 123으로 변환.
• 리스트 [1, 2, 3]를 튜플 (1, 2, 3)로 변환.
Python은 명시적 변환과 암시적 변환 두 가지 방식을 제공합니다.
㉮ 명시적 변환 (Explicit Casting)
개발자가 명시적으로 변환을 요청하여 데이터 타입을 변경합니다.
예: int(), float(), str(), list(), tuple(), set().
# 명시적 변환
value = "10"
number = int(value) # 문자열을 정수로 변환
㉯ 암시적 변환 (Implicit Casting)
Python이 자동으로 데이터를 변환합니다.
예: 정수를 실수로 변환하여 계산.
# 암시적 변환
result = 10 + 3.14 # 정수 + 실수 → 실수
print(type(result)) # <class 'float'>
2. 주요 데이터 유형 변환 함수
Python은 다음과 같은 내장 함수로 데이터 유형을 변환할 수 있습니다:
함수 | 설명 | 예제 |
int() | 문자열 또는 실수를 정수로 변환 | int("10") → 10 |
float() | 문자열 또는 정수를 실수로 변환 | float("3.14") → 3.14 |
str() | 숫자, 리스트 등을 문자열로 변환 | str(100) → "100" |
list() | 튜플, 문자열 등을 리스트로 변환 | list("abc") → ['a', 'b', 'c'] |
tuple() | 리스트, 문자열 등을 튜플로 변환 | tuple([1, 2, 3]) → (1, 2, 3) |
set() | 리스트, 튜플 등을 집한으로 변환 | set([1, 2, 2, 3]) → {1, 2, 3} |
3. 데이터 유형 변환 예제
㉮ 문자열 ↔ 숫자
문자열 → 정수 (int())
value = "123"
number = int(value)
print(number, type(number)) # 123 <class 'int'>
문자열 → 실수 (float())
value = "3.14"
number = float(value)
print(number, type(number)) # 3.14 <class 'float'>
숫자 → 문자열 (str())
number = 100
text = str(number)
print(text, type(text)) # "100" <class 'str'>
㉯ 리스트, 튜플, 집합 변환
리스트 → 튜플 (tuple())
fruits = ["apple", "banana", "cherry"]
fruits_tuple = tuple(fruits)
print(fruits_tuple, type(fruits_tuple)) # ('apple', 'banana', 'cherry') <class 'tuple'>
튜플 → 리스트 (list())
coordinates = (10, 20, 30)
coordinates_list = list(coordinates)
print(coordinates_list, type(coordinates_list)) # [10, 20, 30] <class 'list'>
리스트 → 집합 (set())
numbers = [1, 2, 2, 3, 3, 4]
unique_numbers = set(numbers)
print(unique_numbers, type(unique_numbers)) # {1, 2, 3, 4} <class 'set'>
㉰ 집합, 딕셔너리 변환
집합 → 리스트 (list())
unique_numbers = {1, 2, 3, 4}
numbers_list = list(unique_numbers)
print(numbers_list, type(numbers_list)) # [1, 2, 3, 4] <class 'list'>
딕셔너리 → 리스트 (키/값만 추출)
person = {"name": "Alice", "age": 25}
keys = list(person.keys()) # 키만 리스트로 변환
values = list(person.values()) # 값만 리스트로 변환
print(keys) # ['name', 'age']
print(values) # ['Alice', 25]
4. 형 변환 유효성 검사
변환하려는 값이 유효하지 않으면 오류가 발생할 수 있습니다.
예를 들어, 문자열 "abc"를 숫자로 변환하려고 하면 ValueError가 발생합니다.
㉮ 유효성 검사
value = "123a" # 잘못된 숫자 형식
if value.isdigit(): # 숫자인지 확인
number = int(value)
print(number)
else:
print("유효한 숫자가 아닙니다.") # 유효한 숫자가 아닙니다.
5. 데이터 유형 변환 활용 사례
㉮ 사용자 입력 데이터 처리
사용자로부터 입력받은 데이터를 정수로 변환하여 계산.
age = int(input("나이를 입력하세요: "))
print(f"내년 나이는 {age + 1}살입니다.")
㉯ 평균 점수 계산기
리스트와 숫자 변환을 활용한 평균 점수 계산.
scores = input("세 과목 점수를 공백으로 구분하여 입력하세요: ").split()
scores = list(map(int, scores)) # 문자열 리스트 → 정수 리스트
average = sum(scores) / len(scores)
print(f"평균 점수: {average:.2f}")
실행 결과:
세 과목 점수를 공백으로 구분하여 입력하세요: 85 90 95
평균 점수: 90.00
㉰ 데이터 중복 제거
리스트를 집합으로 변환하여 중복된 데이터를 제거.
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(list(unique_numbers)) # [1, 2, 3, 4, 5]
6. 데이터 변환 시 주의사항
㉮ 유효한 데이터만 변환 가능:
• "123" → int("123") 가능
• "abc" → int("abc") 불가 (ValueError)
㉯ 손실 가능성:
• 실수를 정수로 변환 시 소수점 이하가 버려짐.
print(int(3.99)) # 3
㉰ 중복 제거:
• 집합(set) 변환은 중복 값을 자동으로 제거.
7. 요약
Python에서 데이터 유형 변환은 유연하게 데이터를 처리하고 활용하는 데 중요한 역할을 합니다.
핵심 정리
㉮ 숫자 변환: int(), float().
㉯ 문자열 변환: str().
㉰ 리스트, 튜플, 집합 변환: list(), tuple(), set().
㉱ 유효성 검사: 변환 전 입력 값 확인.
'코딩교육 > Python 초등교육에서 전문가까지' 카테고리의 다른 글
1단계 : 6. 연산과 계산 (feat. 비교 연산자 : 크기 비교 < , > , == , != ) (1) | 2025.01.22 |
---|---|
1단계 : 6. 연산과 계산 (feat. 산술 연산자 : 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 몫) (0) | 2025.01.21 |
1단계 : 5. 데이터 종류와 변수 (feat. Python의 기본 데이터 유형) (0) | 2025.01.19 |
1단계 : 5. 데이터 종류와 변수 (feat. 변수란? ,변수 선언 및 사용법) (0) | 2025.01.18 |
1단계 : 4. 기본 출력과 입력 (feat. 입력 값 데이터 형 변환) (0) | 2025.01.17 |