02. Python 기초 — 데이터 타입

🎯 이 장의 목표
  • 파이썬의 기본 데이터 타입(불·숫자·문자열)을 안다
  • 여러 값을 담는 자료구조(리스트·튜플·딕셔너리·집합)를 구분하고 쓸 수 있다
  • 각 타입을 언제 쓰는지 감을 잡는다
💡 팁
데이터 분석은 결국 "여러 값을 어떻게 담고 다루느냐"의 문제입니다. 이 장의 리스트·딕셔너리는 뒤에서 Pandas 데이터를 만들 때 그대로 쓰이니, 특히 잘 익혀 두세요.

먼저: 데이터 타입이 뭔가요?

데이터 타입(data type)값의 종류입니다. 숫자인지, 글자인지, 참/거짓인지에 따라 할 수 있는 일이 달라집니다. 어떤 값의 타입이 궁금하면 type()으로 확인할 수 있습니다.

PYTHON
print(type(10))
print(type(3.14))
print(type("안녕"))
print(type(True))

실행 결과:

CODE
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>

기본 타입들

숫자: 정수(int)와 소수(float)

PYTHON
count = 10        # int  (정수)
height = 175.5    # float (소수점이 있는 수)
🔑 새 용어
  • int: integer(정수). 소수점 없는 수. 예: -3, 0, 42
  • float: floating-point number(부동소수점 수). 소수점이 있는 수. 예: 3.14, -0.5

문자열(str): 글자

따옴표("')로 감싸면 문자열입니다.

PYTHON
greeting = "안녕하세요"
🔑 새 용어 — 문자열(string, str)
글자들이 줄지어 있는 것. "string"은 글자가 실에 꿰인 모양에서 온 말입니다.

문자열은 더하고(+로 잇기), 곱할(*로 반복) 수 있습니다.

PYTHON
print("데이터" + "분석")   # 이어붙이기
print("하" * 3)            # 반복

실행 결과:

CODE
데이터분석
하하하

문자열에는 유용한 기능(메서드)이 많습니다.

PYTHON
text = "  Hello, Pandas  "
print(text.upper())     # 대문자로
print(text.lower())     # 소문자로
print(text.strip())     # 양 끝 공백 제거
print(text.replace("Pandas", "World"))  # 바꾸기

실행 결과:

CODE
  HELLO, PANDAS  
  hello, pandas  
Hello, Pandas
  Hello, World  
🔑 새 용어 — 메서드(method)
값.기능() 형태로 값에 딸려 오는 기능입니다. text.upper()는 "text라는 문자열아, 너를 대문자로 바꿔 줘"라는 뜻입니다. 9부 텍스트 데이터에서 이 문자열 메서드들을 데이터 분석에 그대로 활용합니다.

불(bool): 참과 거짓

PYTHON
is_student = True
is_adult = False
🔑 새 용어 — 불(boolean, bool)
참(True)이나 거짓(False) 둘 중 하나만 가지는 타입입니다. 19세기 수학자 조지 불(George Boole)의 이름에서 왔습니다. 조건 판단의 기본이 되며, 3장 조건문에서 본격적으로 씁니다. (첫 글자는 항상 대문자: True, False)

여러 값을 담는 자료구조

이제 여러 값을 한꺼번에 담는 그릇들을 봅시다. 네 가지를 표로 먼저 비교하면:

타입기호순서 있음?바꿀 수 있음?중복 허용?한 줄 요약
리스트 list[ ]가장 많이 쓰는 만능 목록
튜플 tuple( )바뀌면 안 되는 목록
딕셔너리 dict{키:값}✅*키는 ❌이름표로 값을 찾는 사전
집합 set{ }중복 없는 모음

(*딕셔너리는 파이썬 3.7부터 입력 순서를 유지합니다.)

리스트(list): 가장 많이 쓰는 목록

대괄호 []로 값을 나열합니다. 순서가 있고, 자유롭게 바꿀 수 있습니다.

PYTHON
fruits = ["사과", "바나나", "포도"]
print(fruits[0])      # 첫 번째 (번호는 0부터!)
print(fruits[-1])     # 마지막
print(len(fruits))    # 개수

실행 결과:

CODE
사과
포도
3
⚠️ 흔한 실수
흔한 실수 — 번호는 0부터
파이썬은 첫 번째를 0번으로 셉니다. fruits[1]은 첫 번째가 아니라 두 번째("바나나")입니다. 이건 Pandas에서도 똑같으니 꼭 익숙해지세요.

리스트는 추가·삭제·변경이 자유롭습니다.

PYTHON
fruits.append("딸기")   # 끝에 추가
fruits[0] = "청사과"     # 첫 번째 값 변경
fruits.remove("바나나")  # 특정 값 삭제
print(fruits)

실행 결과:

CODE
['청사과', '포도', '딸기']

딕셔너리(dict): 이름표로 값을 찾는 사전

중괄호 {} 안에 키: 값 쌍을 넣습니다. 번호가 아니라 이름(키)으로 값을 꺼냅니다.

PYTHON
person = {"name": "철수", "age": 20, "city": "서울"}
print(person["name"])   # 키로 값 꺼내기
print(person["age"])

실행 결과:

CODE
철수
20
🔑 새 용어 — 키(key)와 값(value)
딕셔너리는 을 찾습니다. 사전에서 단어(키)를 찾으면 뜻(값)이 나오는 것과 같습니다. 위에서 "name"이 키, "철수"가 값입니다.
PYTHON
person["job"] = "학생"    # 새 항목 추가
person["age"] = 21        # 값 변경
print(person)

실행 결과:

CODE
{'name': '철수', 'age': 21, 'city': '서울', 'job': '학생'}

💡 : 딕셔너리는 Pandas에서 데이터프레임(표)을 만들 때 핵심으로 쓰입니다. {"열이름": [값들]} 형태가 곧 표 한 장이 됩니다. 10장에서 다시 만납니다.

튜플(tuple): 바뀌면 안 되는 목록

소괄호 ()로 만들며, 리스트와 비슷하지만 한 번 만들면 바꿀 수 없습니다.

PYTHON
point = (37.5, 127.0)   # 위도, 경도처럼 바뀌면 안 되는 값
print(point[0])
# point[0] = 0   # ❌ 에러! 튜플은 변경 불가

실행 결과:

CODE
37.5

💡 좌표, 고정된 설정값처럼 "실수로라도 바뀌면 안 되는" 값에 씁니다.

집합(set): 중복 없는 모음

중괄호 {}로 만들며, 중복을 자동으로 제거하고 순서가 없습니다.

PYTHON
numbers = {1, 2, 2, 3, 3, 3}
print(numbers)             # 중복이 사라짐
print(3 in numbers)        # 들어 있는지 확인

실행 결과:

CODE
{1, 2, 3}
True

💡 "중복 제거"가 필요할 때 가장 빠릅니다. 리스트를 set()으로 감싸면 중복이 사라집니다.

PYTHON
fruits = ["사과", "사과", "포도"]
print(set(fruits))   # {'사과', '포도'}

🛠 미니 챌린지

  1. 좋아하는 영화 3편을 리스트에 담고, 두 번째 영화를 출력하세요.
  2. 딕셔너리로 자신의 정보(name, age, hobby)를 만들고, 취미를 출력하세요.
  3. [1, 1, 2, 3, 3, 3, 4]에서 중복을 제거한 결과를 출력하세요.

✅ 미니 챌린지 해설

PYTHON
# 1. 리스트와 인덱싱 (두 번째는 [1])
movies = ["인셉션", "기생충", "인터스텔라"]
print(movies[1])

실행 결과: 기생충

PYTHON
# 2. 딕셔너리
me = {"name": "홍길동", "age": 20, "hobby": "독서"}
print(me["hobby"])

실행 결과: 독서

PYTHON
# 3. 집합으로 중복 제거
nums = [1, 1, 2, 3, 3, 3, 4]
print(set(nums))

실행 결과: {1, 2, 3, 4}

이 장에서 배운 것

  • 기본 타입: int(정수), float(소수), str(문자열), bool(참/거짓).
  • 리스트 []는 순서 있고 변경 가능한 만능 목록 (번호는 0부터).
  • 딕셔너리 {키:값}은 이름표로 값을 찾으며, Pandas 표 만들기의 핵심.
  • 튜플 ()은 변경 불가, 집합 {}은 중복 없는 모음.

✍️ 확인 문제

  1. 리스트 ["가", "나", "다"]에서 "나"를 꺼내려면 인덱스 번호 몇 번을 써야 하나요?
  2. 튜플과 리스트의 가장 큰 차이는 무엇인가요?
  3. 딕셔너리에서 값을 꺼낼 때는 번호 대신 무엇을 쓰나요?
다음 장에서는 "조건에 따라 다르게 행동하기"와 "같은 일을 반복하기"를 배웁니다.
👉 03. Python 기초 — 조건문과 반복문