- 파이썬의 기본 자료형(정수·실수·문자열·불)과 모음 자료형(리스트·딕셔너리)의 특성을 설명할 수 있다.
- 데이터의 성격에 적합한 자료형을 근거를 들어 선택할 수 있다.
- 적합한 자료형을 활용한 프로그램을 직접 작성하고 실행할 수 있다.
생각 열기 — "17" + 1 = ?
컴퓨터에게 나이를 알려 줬는데, 1년 뒤의 나이를 계산하지 못한다면? 직접 실험해 봅시다. 아래 코드를 그대로 실행해 보세요 — 일부러 오류가 나도록 만들어 두었습니다!
첫 줄은 18이 나오는데 둘째 줄은 TypeError가 났죠?
컴퓨터에게 17은 계산할 수 있는 수이고, "17"은 그저 글자 '1'과 '7'이 나란히 있는 문자열이에요.
같아 보이는 데이터도 자료형이 다르면 할 수 있는 일이 다릅니다 — 이것이 오늘의 핵심!
기본 자료형 — 네 가지 기본 그릇
수, 글자, 그리고 참/거짓
자료형(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차시 선택 구조의 심장! |
각 값의 자료형을 골라 보세요. 카드를 누른 뒤 알맞은 바구니 클릭! (함정 카드 주의 ⚠️)
정수 int
실수 float
문자열 str
불 bool
💡 함정 해설: "365"와 "True"는 따옴표가 있으니 문자열, 3.0은 소수점이 있으니 실수,
10 > 3은 비교의 결과이므로 불(True)! 헷갈리면 위의 실행기에서 type()으로 직접 확인하세요.
모음 자료형 — 여러 데이터를 한 그릇에
리스트와 딕셔너리, 프로그램의 밥상
📋 리스트(list) — 순서가 있는 모음
리스트는 값들을 순서대로 담는 그릇이에요. 각 칸에는 0부터 시작하는 번호(인덱스)가 붙어요. 2차시에서 정렬했던 그 데이터들이 바로 리스트입니다!
🏷️ 딕셔너리(dict) — 이름표가 있는 모음
딕셔너리는 값마다 이름표(키)를 붙여 담는 그릇이에요. "3번째 값"이 아니라 "국어 점수"처럼 이름으로 찾죠. 3차시 더 알아보기에서 본 해시 탐색이 바로 이 안에서 일하고 있어서, 데이터가 많아도 눈 깜짝할 새 찾습니다!
적합한 자료형 고르기
성취기준의 핵심 — 선택에는 근거가 있다
자료형 선택의 기준은 단순해요 — ① 이 데이터의 성격이 무엇인가(수? 글자? 참/거짓?), ② 어떻게 사용할 것인가(계산? 순서대로 처리? 이름으로 검색?). 1차시 모델링에서 배운 그대로, 문제가 그릇을 결정합니다.
자료형 선택 연습
시나리오 3개 · 즉시 채점
1전화번호 "010-1234-5678"을 저장하기에 적합한 자료형은?
2우리 반 30명의 키(cm)를 모아 평균을 계산하려 한다. 적합한 자료형은?
3친구 이름을 넣으면 전화번호가 나오는 연락처 프로그램. 적합한 자료형은?
여러 자료형이 협력하는 작은 프로그램입니다. 실행해 보고, 아래 미션을 수행하세요!
- 미션 ①: 새 책 "코딩의 즐거움"(대출 가능)을 딕셔너리에 추가하세요.
- 미션 ②: "알고리즘 모험"이 반납되었습니다 — 값을 True로 바꾸고 다시 실행해 보세요.
- 미션 ③: 이 프로그램에서 int, float, str, bool, list, dict가 각각 어디에 쓰였는지 짝과 함께 모두 찾아보세요 — 왜 그 자료형이어야 했는지 한 줄씩 설명해 보세요.
이번엔 골격만 드립니다. 각 데이터에 어떤 자료형을 쓸지 스스로 선택하고, 코드를 직접 작성하세요 — 선택의 이유를 주석으로 남기는 것까지가 미션입니다!
💡 짝과 코드를 바꿔 보고 "왜 이 자료형을 골랐어?"라고 서로 물어보세요. 근거를 말할 수 있는 선택 — 그것이 이 차시의 성취기준입니다.
확인 문제
바로바로 채점! 해설까지 꼭 읽어 보세요.
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.3은 False입니다!
실제로 0.1 + 0.2를 출력하면 0.30000000000000004가 나와요.
이유는 2단원에서 배운 이진수에 있어요. 컴퓨터는 모든 수를 0과 1로 저장하는데, 0.1은 이진수로 나타내면 0.000110011001100…처럼 무한히 반복되어 어딘가에서 잘라야 하거든요. 1/3을 십진수로 0.3333…에서 잘라 쓰는 것과 같은 사정이죠.
그래서 은행처럼 1원도 틀리면 안 되는 곳에서는 실수(float)로 돈을 계산하지 않고, 정수(원 단위)나 전용 자료형(Decimal)을 씁니다. 자료형의 특성을 아는 것이 곧 버그를 막는 일이라는 좋은 예!
2분의 1, 4분의 1, 8분의 1… 비트를 하나씩 더해 0.1에 다가가 보세요 — 과연 닿을 수 있을까요?
심화문자열은 사실 글자들의 리스트? — 인덱싱과 슬라이싱
문자열도 리스트처럼 번호로 글자를 꺼낼 수 있어요. 잘라내기(슬라이싱)까지 배우면 문자열 처리가 자유로워집니다.
💡 칸 위의 숫자가 인덱스, 아래의 음수는 뒤에서부터 세는 음수 인덱스예요. 문자열을 직접 바꾸고 슬라이더를 움직여 보세요!
비교파이썬은 왜 자료형을 안 적을까 — 동적 타이핑 이야기
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()— 그릇 옮겨 담기 - 선택 기준 = 데이터의 성격 + 사용 방법 — "계산하면 수, 이름으로 찾으면 딕셔너리, 순서대로 처리하면 리스트"