단원 홈
3단원 · 4차시 — 여기부터 본격 파이썬! 🐍

데이터에 맞는 그릇
자료형

국은 국그릇에, 밥은 밥공기에. 데이터도 종류마다 맞는 그릇이 있습니다 — 그릇(자료형)을 잘 고르는 것이 좋은 프로그램의 첫걸음입니다.

성취기준 12정03-04
정수 int실수 float문자열 str 불 bool리스트 list딕셔너리 dict
🎯 학습 목표
  • 파이썬의 기본 자료형(정수·실수·문자열·불)과 모음 자료형(리스트·딕셔너리)의 특성을 설명할 수 있다.
  • 데이터의 성격에 적합한 자료형을 근거를 들어 선택할 수 있다.
  • 적합한 자료형을 활용한 프로그램을 직접 작성하고 실행할 수 있다.
🤔

생각 열기 — "17" + 1 = ?

컴퓨터에게 나이를 알려 줬는데, 1년 뒤의 나이를 계산하지 못한다면? 직접 실험해 봅시다. 아래 코드를 그대로 실행해 보세요 — 일부러 오류가 나도록 만들어 두었습니다!

💬 함께 생각해 보기

첫 줄은 18이 나오는데 둘째 줄은 TypeError가 났죠? 컴퓨터에게 17은 계산할 수 있는 이고, "17"은 그저 글자 '1'과 '7'이 나란히 있는 문자열이에요. 같아 보이는 데이터도 자료형이 다르면 할 수 있는 일이 다릅니다 — 이것이 오늘의 핵심!

1

기본 자료형 — 네 가지 기본 그릇

수, 글자, 그리고 참/거짓

자료형(data type)은 데이터의 종류이자, 그 데이터로 무엇을 할 수 있는지를 정하는 약속이에요. 파이썬의 기본 자료형 네 가지부터 만나 봅시다.

자료형담는 것예시주요 연산
정수 int소수점 없는 수17, -3, 2026+ − × ÷(나눗셈 / 의 결과는 항상 float! 6/2 → 3.0), 몫(//), 나머지(%)
실수 float소수점 있는 수3.14, 36.5, -0.5사칙연산 (미세한 오차 주의!)
문자열 str글자들의 나열"안녕", "17", 'a'이어 붙이기(+), 반복(*), 길이(len)
불 bool참 또는 거짓True, False비교·논리 연산의 결과 — 7차시 선택 구조의 심장!
🕹️ 활동 1 — 이 값의 그릇은?

각 값의 자료형을 골라 보세요. 카드를 누른 뒤 알맞은 바구니 클릭! (함정 카드 주의 ⚠️)

정수 int
실수 float
문자열 str
불 bool

💡 함정 해설: "365""True"는 따옴표가 있으니 문자열, 3.0은 소수점이 있으니 실수, 10 > 3은 비교의 결과이므로 불(True)! 헷갈리면 위의 실행기에서 type()으로 직접 확인하세요.

2

모음 자료형 — 여러 데이터를 한 그릇에

리스트와 딕셔너리, 프로그램의 밥상

다양한 그릇에 반찬이 담긴 한식 상차림
한식 상차림 — 국·밥·반찬마다 그릇이 다르듯, 데이터도 성격에 따라 담는 구조가 다르다. 순서대로 늘어놓을 땐 리스트, 이름표를 붙여 찾을 땐 딕셔너리! 출처: Wikimedia Commons

📋 리스트(list) — 순서가 있는 모음

리스트는 값들을 순서대로 담는 그릇이에요. 각 칸에는 0부터 시작하는 번호(인덱스)가 붙어요. 2차시에서 정렬했던 그 데이터들이 바로 리스트입니다!

🏷️ 딕셔너리(dict) — 이름표가 있는 모음

딕셔너리는 값마다 이름표(키)를 붙여 담는 그릇이에요. "3번째 값"이 아니라 "국어 점수"처럼 이름으로 찾죠. 3차시 더 알아보기에서 본 해시 탐색이 바로 이 안에서 일하고 있어서, 데이터가 많아도 눈 깜짝할 새 찾습니다!

3

적합한 자료형 고르기

성취기준의 핵심 — 선택에는 근거가 있다

자료형 선택의 기준은 단순해요 — ① 이 데이터의 성격이 무엇인가(수? 글자? 참/거짓?), ② 어떻게 사용할 것인가(계산? 순서대로 처리? 이름으로 검색?). 1차시 모델링에서 배운 그대로, 문제가 그릇을 결정합니다.

🧭

자료형 선택 연습

시나리오 3개 · 즉시 채점

1전화번호 "010-1234-5678"을 저장하기에 적합한 자료형은?

2우리 반 30명의 키(cm)를 모아 평균을 계산하려 한다. 적합한 자료형은?

3친구 이름을 넣으면 전화번호가 나오는 연락처 프로그램. 적합한 자료형은?

🛠️ 활동 2 — 종합 실습: 학급 도서 대출 프로그램

여러 자료형이 협력하는 작은 프로그램입니다. 실행해 보고, 아래 미션을 수행하세요!

  1. 미션 ①: 새 책 "코딩의 즐거움"(대출 가능)을 딕셔너리에 추가하세요.
  2. 미션 ②: "알고리즘 모험"이 반납되었습니다 — 값을 True로 바꾸고 다시 실행해 보세요.
  3. 미션 ③: 이 프로그램에서 int, float, str, bool, list, dict가 각각 어디에 쓰였는지 짝과 함께 모두 찾아보세요 — 왜 그 자료형이어야 했는지 한 줄씩 설명해 보세요.
🛠️ 활동 3 — 직접 작성: 나의 프로필 프로그램

이번엔 골격만 드립니다. 각 데이터에 어떤 자료형을 쓸지 스스로 선택하고, 코드를 직접 작성하세요 — 선택의 이유를 주석으로 남기는 것까지가 미션입니다!

💡 짝과 코드를 바꿔 보고 "왜 이 자료형을 골랐어?"라고 서로 물어보세요. 근거를 말할 수 있는 선택 — 그것이 이 차시의 성취기준입니다.

확인 문제

바로바로 채점! 해설까지 꼭 읽어 보세요.

📝

4차시 확인 문제

4문항 · 즉시 채점

1"3.14"의 자료형은?

2data = [10, 20, 30]일 때 data[1]의 값은?

3키(key)와 값(value)을 짝지어 저장하고, 키로 값을 찾는 자료형은?

4문자열 "10"에 대해 "10" * 2를 실행한 결과는?

🚀

더 알아보기

교육과정 너머, 궁금한 만큼 깊이!

심화바꿀 수 없는 그릇, 중복 없는 그릇 — 튜플과 집합

파이썬에는 두 가지 그릇이 더 있어요.

  • 튜플(tuple) — 리스트와 같지만 한 번 만들면 수정 불가. birthday = (2009, 3, 15)처럼 바뀌면 안 되는 데이터를 보호할 때 써요. 실수로 고치는 사고를 자료형이 막아 주는 거죠!
  • 집합(set) — 순서도 없고 중복도 자동 제거. set([1,2,2,3,3,3]){1,2,3}. "우리 반이 신청한 동아리 종류"처럼 중복 없는 모음에 제격이에요. 교집합(&), 합집합(|) 연산도 수학 시간 그대로!
리스트 list튜플 tuple집합 set
모양[1, 2, 2](1, 2, 2){1, 2}
순서·인덱스⭕ 있음⭕ 있음❌ 없음
수정⭕ 자유❌ 불가 — 보호!⭕ 추가·삭제 가능
중복⭕ 허용⭕ 허용❌ 자동 제거
어울리는 데이터발표 순서, 점수 목록생일, 좌표 — 바뀌면 안 되는 값신청한 동아리 종류 — 중복 없는 모음
심화0.1 + 0.2는 0.3이 아니다?! — 실수의 비밀

충격적인 실험 하나: 파이썬에서 0.1 + 0.2 == 0.3False입니다! 실제로 0.1 + 0.2를 출력하면 0.30000000000000004가 나와요.

이유는 2단원에서 배운 이진수에 있어요. 컴퓨터는 모든 수를 0과 1로 저장하는데, 0.1은 이진수로 나타내면 0.000110011001100…처럼 무한히 반복되어 어딘가에서 잘라야 하거든요. 1/3을 십진수로 0.3333…에서 잘라 쓰는 것과 같은 사정이죠.

그래서 은행처럼 1원도 틀리면 안 되는 곳에서는 실수(float)로 돈을 계산하지 않고, 정수(원 단위)나 전용 자료형(Decimal)을 씁니다. 자료형의 특성을 아는 것이 곧 버그를 막는 일이라는 좋은 예!

🧱 이진 비트로 0.1 조립하기
0.

2분의 1, 4분의 1, 8분의 1… 비트를 하나씩 더해 0.1에 다가가 보세요 — 과연 닿을 수 있을까요?

심화문자열은 사실 글자들의 리스트? — 인덱싱과 슬라이싱

문자열도 리스트처럼 번호로 글자를 꺼낼 수 있어요. 잘라내기(슬라이싱)까지 배우면 문자열 처리가 자유로워집니다.

0
4

💡 칸 위의 숫자가 인덱스, 아래의 음수는 뒤에서부터 세는 음수 인덱스예요. 문자열을 직접 바꾸고 슬라이더를 움직여 보세요!

비교파이썬은 왜 자료형을 안 적을까 — 동적 타이핑 이야기

1단원 더 알아보기의 아두이노 코드에서 int moisture = ...처럼 자료형을 먼저 선언했던 것, 기억하나요? C, 자바 같은 언어는 변수를 만들 때 그릇의 종류를 미리 적어야 해요(정적 타이핑).

C — 정적 타이핑 (그릇 먼저 선언)
int age = 17;
float height = 171.5;

age = "열일곱";
// ❌ 컴파일 오류!
// 실행해 보기도 전에 적발된다
파이썬 — 동적 타이핑 (값을 보고 판단)
age = 17
height = 171.5

age = "열일곱"
# ✅ 일단 통과 — 그릇이 바뀐다
print(age + 1)  # 💥 실행 중 TypeError!

파이썬은 값을 보고 자료형을 알아서 판단합니다(동적 타이핑). 쓰기 편하지만, 생각 열기에서 본 것처럼 실행해 봐야 자료형 오류를 발견하는 단점도 있죠. 그래서 요즘 파이썬에는 age: int = 17처럼 자료형 힌트를 적는 문화도 생겼어요 — 편리함과 안전함 사이의 트레이드오프, 알고리즘만이 아니라 언어 설계에도 있답니다!

📌

한눈에 정리

  • 자료형 = 데이터의 종류이자 가능한 연산의 약속 — 17"17"은 다른 세계
  • 기본 그릇: int(정수) · float(실수) · str(문자열) · bool(참/거짓)
  • 모음 그릇: list(순서·인덱스) · dict(키-값, 해시로 빠른 검색)
  • 형변환: int(), float(), str() — 그릇 옮겨 담기
  • 선택 기준 = 데이터의 성격 + 사용 방법 — "계산하면 수, 이름으로 찾으면 딕셔너리, 순서대로 처리하면 리스트"