Python 자료형(int, float, str, tuple) 완벽 정리
선수학습(1개)
요약
Python의 기본 자료형 int, float, bool, str, list, tuple을 정리합니다. type() 함수로 자료형 확인, len() 함수, 자료형 변환(캐스팅)까지 정보처리기사 실기 시험에 필요한 핵심 개념을 쌩기초부터 설명합니다.
자료형 핵심 정리
| 분류 | 자료형 | 저장하는 데이터 | 예시 |
|---|---|---|---|
| 숫자형 | int | 정수 | 100, -5, 0 |
| 숫자형 | float | 실수 (소수점이 있는 수) | 3.14, 100.0 |
| 논리형 | bool | 참 / 거짓 | True, False |
| 문자열 | str | 문자들의 묶음 | "hello", "100.0" |
| 시퀀스 | list | 변경 가능한 묶음 | [1, 2, 3] |
| 시퀀스 | tuple | 변경 불가능한 묶음 | (1, 2, 3) |
"시퀀스"는 여러 값을 순서대로 묶어 저장하는 자료형을 뜻합니다. 각 항목을 아래에서 하나씩 풀어서 설명합니다.
자료형이란? 쌩기초
자료형(data type)은 변수에 어떤 종류의 데이터가 들어 있는지 를 나타내는 분류표입니다.
Python은 값을 대입하는 순간 그 값이 무엇인지를 보고 자료형을 자동으로 결정합니다. 5를 넣으면 정수, 3.14를 넣으면 실수, 따옴표로 감싼 값을 넣으면 문자열로 판단합니다.1
같은 변수라도 새로운 값을 대입하면 자료형이 바뀔 수 있습니다.
정수형 — int 쌩기초
int는 integer(정수)의 약자입니다. 소수점이 없는 수를 저장합니다.
음수, 0, 양수 모두 int입니다. Python의 int는 크기 제한이 없어서 아주 큰 수도 그대로 저장할 수 있습니다.
<class 'int'>는 "이 값은 int 자료형입니다"라는 뜻입니다. type() 함수가 항상 이 형태로 결과를 보여주며, 자세한 내용은 아래 type() 함수로 자료형 확인 섹션에서 다룹니다.
실수형 — float 쌩기초
float는 floating point(부동소수점)의 약자로, 소수점이 있는 수를 저장합니다.
int와 float의 차이는 점(.) 하나
같아 보이는 두 숫자라도 점이 있으면 float, 없으면 int입니다.
이 차이는 시험에서 함정 포인트로 출제된 바 있습니다. 100은 정수, 100.0은 실수로 자료형이 갈립니다.
불 자료형 — bool 기초
bool은 boolean(불)의 약자로, 참(True) 또는 거짓(False) 두 값만 가질 수 있습니다.
조건식의 결과가 항상 bool입니다.
bool은 int의 하위 자료형입니다
Python에서 bool은 사실 int의 한 종류로 취급됩니다.2 True는 1, False는 0으로 동작하기 때문에 산술 연산에도 사용할 수 있습니다.
문자열 — str 쌩기초
str은 string(문자열)의 약자입니다. 문자들을 따옴표로 감싸 묶은 자료형입니다.
따옴표는 큰따옴표("..."), 작은따옴표('...'), 삼중 따옴표("""...""" 또는 '''...''') 모두 사용할 수 있습니다.
숫자처럼 보여도 따옴표로 감싸면 str
출제된 바 있는 함정 포인트입니다. 따옴표로 감싸면 내용이 숫자여도 자료형은 str입니다.
문자열의 슬라이싱, 인덱싱, 메서드 등 자세한 사용법은 Python 문자열 페이지에서 다룹니다.
리스트와 튜플 기초
여러 값을 묶어서 저장하는 자료형입니다. 두 자료형의 가장 큰 차이는 변경 가능 여부 입니다.
list — 변경 가능한 묶음
list는 대괄호 [ ]로 감싸서 만듭니다. 만든 뒤에도 요소를 추가, 수정, 삭제할 수 있습니다.
nums[0]은 첫 번째 요소(0번 인덱스), nums[1]은 두 번째 요소(1번 인덱스)입니다. 인덱스는 항상 0부터 시작합니다.
tuple — 변경 불가능한 묶음
tuple은 소괄호 ( )로 감싸서 만듭니다. 한 번 만들면 요소를 바꿀 수 없습니다.
list vs tuple 한눈에 비교
| 항목 | list | tuple |
|---|---|---|
| 괄호 | 대괄호 [ ] | 소괄호 ( ) |
| 변경 가능 여부 | 변경 가능 (mutable) | 변경 불가 (immutable) |
| 요소 추가 | append, extend 가능 | 불가 |
| 사용 목적 | 자주 바뀌는 데이터 묶음 | 좌표·고정 설정값 등 변하면 안 되는 묶음 |
| 자료형 표기 | <class 'list'> | <class 'tuple'> |
리스트의 메서드와 슬라이싱은 Python 리스트 페이지에서 자세히 다룹니다.
괄호는 수식의 우선순위 표시에도 쓰이기 때문에, (100)만 쓰면 Python은 그냥 정수 100을 괄호로 감싼 것으로 해석합니다. 요소가 하나뿐이라도 tuple임을 명시하려면 쉼표가 반드시 있어야 합니다.

딕셔너리와 집합 한눈에 기초
dict(딕셔너리)와 set(집합)도 Python의 핵심 자료형입니다. 이 페이지에서는 한 줄씩만 정리하고, 자세한 내용은 Python 딕셔너리와 집합 페이지에서 다룹니다.
| 자료형 | 괄호 | 저장 형태 | 예시 |
|---|---|---|---|
dict | { } (키-값) | 키와 값의 쌍 | {"name": "감자", "age": 5} |
set | { } (값만) | 중복 없는 값의 묶음 | {1, 2, 3} |
빈 {}는 set이 아니라 dict입니다. 빈 set을 만들려면 set()을 사용합니다.
type() 함수로 자료형 확인 기초
type(x)는 x가 어떤 자료형(클래스)인지를 알려줍니다.
type(x) == type(샘플) 형태로 비교하면 두 값이 같은 자료형인지 확인할 수 있습니다. 이 관용구는 정보처리기사 실기에서 출제된 바 있습니다.
type()을 활용한 분기 문제와 자세한 사용법은 Python 함수 페이지의 type() 섹션에서 다룹니다.
len() 함수 쌩기초
len()은 시퀀스(문자열, 리스트, 튜플 등)의 요소 개수 를 반환합니다.
문자열 길이를 구하는 가장 기본적인 함수이며, 정보처리기사 실기에서 분기 결과가 len()이 되는 문제가 출제된 바 있습니다.
자료형 변환 (캐스팅) 기초
한 자료형의 값을 다른 자료형으로 바꾸는 것을 형변환 또는 캐스팅(casting)이라고 합니다. Python에서는 자료형 이름을 함수처럼 호출하면 됩니다.
bool() 변환 규칙은 단순합니다. 0, 0.0, 빈 문자열 "", 빈 리스트 [], None 같은 '비어있거나 0인 값'은 모두 False이고, 그 외는 모두 True입니다.
자주 등장하는 변환 패턴
| 원본 | 변환식 | 결과 |
|---|---|---|
"100" (str) | int("100") | 100 (int) |
"3.14" (str) | float("3.14") | 3.14 (float) |
100 (int) | str(100) | "100" (str) |
100 (int) | float(100) | 100.0 (float) |
[1, 2, 3] (list) | tuple([1, 2, 3]) | (1, 2, 3) (tuple) |
(1, 2, 3) (tuple) | list((1, 2, 3)) | [1, 2, 3] (list) |
int()는 소수점 이하를 버립니다 (반올림이 아님). 3.14도, 3.99도 모두 3이 됩니다.