본문 바로가기
코딩교육/Python 초등교육에서 전문가까지

1단계 : 5. 데이터 종류와 변수 (feat. 데이터 유형 변환 방법)

by 제리토리 2025. 1. 20.
728x90
반응형

 

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().

      ㉱ 유효성 검사: 변환 전 입력 값 확인.

728x90
반응형