데이터 타입과 타입 변환

Tip학습 목표
  • 정수와 부동소수점 숫자의 주요 차이점을 설명합니다.
  • 숫자와 문자열의 차이점을 이해합니다.
  • 내장 함수를 사용하여 데이터 타입을 변환합니다.
Note질문
  • 파이썬은 어떤 종류의 데이터를 저장하나요?
  • 한 데이터 타입을 다른 타입으로 어떻게 변환하나요?

모든 값에는 타입(Type)이 있습니다.

  • 파이썬의 모든 값은 특정한 데이터 타입을 가집니다.
  • 정수 (int): 3, -512와 같이 소수점이 없는 숫자입니다.
  • 부동소수점 숫자 (float): 3.14, -2.5와 같이 소수점이 포함된 숫자입니다.
  • 문자열 (str): 텍스트 데이터입니다. 작은따옴표나 큰따옴표로 감싸서 작성합니다.

type() 함수를 사용한 타입 확인

  • 값이나 변수의 데이터 타입을 알고 싶을 때는 type() 함수를 사용합니다.
print(type(52))
fitness = 'average'
print(type(fitness))
<class 'int'>
<class 'str'>

타입에 따른 연산의 제한

  • 데이터 타입에 따라 수행할 수 있는 작업이 달라집니다.
print(5 - 3)
# print('hello' - 'h')  # TypeError 발생: 문자열 간의 뺄셈은 지원하지 않음
2

문자열의 특수 연산

  • + 연산자: 두 문자열을 하나로 이어 붙입니다(concatenation).
  • * 연산자: 문자열을 정수 횟수만큼 반복합니다.
full_name = 'Ahmed' + ' ' + 'Walsh'
print(full_name)
print('=' * 10)
Ahmed Walsh
==========

문자열의 길이와 숫자 데이터

  • len() 함수는 문자열의 길이를 반환하지만, 숫자 데이터(int, float)에는 적용할 수 없습니다.
print(len(full_name))
# print(len(52))  # TypeError 발생
11

데이터 타입 변환

  • 서로 다른 타입(예: 숫자와 문자열)을 직접 더하면 오류가 발생합니다.
  • str(), int(), float() 함수를 사용하여 명시적으로 타입을 변환해야 합니다.
print(1 + int('2'))
print(str(1) + '2')
3
12

정수와 부동소수점 숫자의 혼용

  • 정수형과 부동소수점형을 함께 계산하면, 파이썬은 결과를 자동으로 부동소수점형으로 변환합니다.
print('half is', 1 / 2.0)
print('three squared is', 3.0 ** 2)
half is 0.5
three squared is 9.0

Important연습 문제

데이터 타입 선택하기

다음 상황을 표현하기 위해 어떤 데이터 타입(정수, 부동소수점 숫자, 문자열)이 적절할까요?

  1. 올해의 총 경과 일수 (예: 100일)
  2. 정밀한 시간 측정값 (예: 1.5일)
  3. 장비 일련번호 (예: “SN-1234”)
  4. 한 도시의 현재 인구수 (예: 500000)
  5. 도시의 평균 인구수 변화 추세
  1. 정수 (int)
  2. 부동소수점 숫자 (float)
  3. 문자열 (str)
  4. 정수 (int)
  5. 부동소수점 숫자 (float)
Important연습 문제

나눗셈 연산자

파이썬 3에는 세 가지 나눗셈 관련 연산자가 있습니다.

  • /: 부동소수점 나눗셈 (결과가 float)
  • //: 정수 나눗셈 (몫만 반환)
  • %: 나머지 연산 (나머지만 반환)

참가자 수(num_subjects)가 600명이고, 설문지 한 장당 최대 인원(num_per_survey)이 42명일 때, 모든 인원을 조사하기 위해 필요한 최소 설문지 수를 구하는 식을 작성해 보세요.

num_subjects = 600
num_per_survey = 42
# 올림 계산을 위한 간단한 공식
num_surveys = (num_subjects + num_per_survey - 1) // num_per_survey
print(num_surveys)
Important연습 문제

타입 변환 오류

int("3.4")를 실행하면 왜 오류가 발생할까요? 어떻게 해결할 수 있을까요?

int()는 소수점이 포함된 문자열을 직접 정수로 변환하지 못합니다. 먼저 float()로 변환한 뒤 int()를 적용해야 합니다. int(float("3.4"))

Note핵심 요약
  • 모든 값은 타입을 가지며, 타입에 따라 가능한 연산이 결정됩니다.
  • int, float, str 간의 변환을 위해 명시적인 형변환 함수를 사용합니다.
  • 숫자와 문자열을 섞어서 연산할 때는 반드시 타입을 맞춰주어야 합니다.