🗄️ 데이터센터
home
주식거래 데이터
home
🗂️

데이터의 형태 : 자료형

파이썬에서 사용되는 기본적인 자료형들을 알아보겠습니다. 변수?? 페이지에서 변수 선언할 때 문자열 변수에 대해 언급했었죠? 기억하지 않아도 됩니다. 여기서 다시 설명할 거니까요. 숫자, 문자, 참/거짓과 같은 것들을 자료형이라고 하는데요. 이런 자료형은 프로그래밍에서 매우 중요합니다. 자료형은 데이터를 메모리(변수)에 저장하는 방식이라고 생각하시면 됩니다. 걱정 마세요! 외우지 않아도 됩니다. 계속 실습하면서 배워볼 거예요! 실습이 가장 중요하기 때문에 설명은 가볍게 읽어도 됩니다. 자료형의 종류들이 있다는 정도만 알고 가셔도 충분합니다.
자료형은 처음에는 가볍게 넘어가셔도 괜찮습니다. if문이나 for문을 배울 때도 자연스럽게 접하게 될 테니까요. 실제 프로젝트에서 정말 필요할 때 자세히 학습하시면 됩니다. 실제 프로젝트에서 제가 중요한 부분을 표시해둘 테니, 나중에 찾아보면서 공부하면 됩니다.

1. 숫자형 (Numeric)

숫자형(Numeric) 자료형의 세 가지 종류와 각각의 예시를 살펴보겠습니다:
1. 정수(int) : 소수점이 없는 온전한 숫자를 의미합니다
2. 실수(float) : 소수점이 있는 숫자를 의미합니다
3. 복소수(complex) : 실수부와 허수부로 구성된 숫자입니다
# 정수형 예시 age = 25 temperature = -5 # 실수형 예시 pi = 3.14 height = 175.5 # 복소수 예시 complex_number = 3 + 4j
Python
복사
각 변수의 자료형은 type() 함수를 사용하여 확인할 수 있습니다. 예를 들어 실습할때 출력해보세요!
print(type(age)) # <class 'int'> print(type(pi)) # <class 'float'> print(type(complex_number)) # <class 'complex'>
Python
복사

2. 문자열 (String)

큰따옴표(" ") 또는 작은따옴표(' ')로 둘러싸인 문자들의 집합입니다. 문자열은 텍스트 데이터를 저장하는데 사용되며, 글자, 단어, 문장 등 모든 텍스트를 포함할 수 있습니다. 따옴표 안에는 알파벳, 숫자, 특수문자, 공백 등 어떤 문자든 넣을 수 있으며, 한글도 물론 가능합니다. 단, 시작할 때 사용한 따옴표와 같은 종류의 따옴표로 끝내야 합니다.
message = "Hello, Python!" name = '으뜸이네 파이썬'
Python
복사

3. 불린형 (Boolean)

참(True)과 거짓(False)만을 값으로 가질 수 있는 자료형입니다. 주로 조건문이나 반복문에서 사용되며, 어떤 조건이 맞는지(True) 틀린지(False)를 판단할 때 사용합니다. 예를 들어 '3이 5보다 작다'는 True이고, '3이 5보다 크다'는 False입니다. 이 부분은 조건문 if에서 자세히 다룰겁니다.
is_student = True is_working = False
Python
복사

4. 시퀀스형

시퀀스형은 순서가 있는 데이터를 다루는 자료형이기 때문에 '시퀀스(sequence: 순서)'라는 이름이 붙었습니다. 시퀀스형에는 리스트, 튜플, range, 문자열, bytes가 포함되며, 이들의 공통점은 모두 순서가 있는 데이터 구조라는 것입니다.

(1) 리스트(list)

리스트는 파이썬에서 가장 많이 사용되는 데이터 구조로, 다음과 같은 특징을 가집니다
순서가 있어 인덱스로 접근이 가능합니다 (예: list[0])
대괄호 []를 사용해 생성하며, 쉼표로 요소를 구분합니다
문자열, 숫자, 불린 등 다양한 자료형을 하나의 리스트에 담을 수 있습니다
append(), remove() 등의 메서드로 요소를 자유롭게 추가/삭제할 수 있습니다
리스트 안에 또 다른 리스트를 넣어 중첩된 구조를 만들 수 있습니다
# 리스트 예시 numbers = [1, 2, 3, 4, 5] mixed = [1, "Hello", 3.14, True] # 리스트 수정 numbers.append(6) # 요소 추가 numbers[0] = 10 # 요소 변경 del numbers[1] # 요소 삭제
Python
복사
리스트는 매우 자주 사용되며, 그 내용이 너무 방대해서 따로 섹션을 만들어도 충분할 정도입니다. 우리는 빠르게 기초를 학습하고, 자세한 내용은 나중에 보충하도록 하겠습니다. 제가 직접 보충해드리거나, ChatGPT나 Gemini 같은 AI를 활용해서 실제 사용하면서 학습해 나가시면 됩니다.

(2) 튜플(tuple)

튜플은 순서가 있는 데이터를 담는 자료형인데, 리스트와 달리 한번 생성하면 수정이 불가능하다는 특징이 있습니다. 리스트가 대괄호 []를 사용하는 것과 달리, 튜플은 소괄호 ()를 사용하여 생성합니다. 예를 들어 point = (3, 4)와 같이 좌표를 저장하거나, person = ("홍길동", 25)처럼 관련된 데이터를 함께 묶어서 저장할 때 자주 사용됩니다. 수정이 불가능하기 때문에 실수로 데이터가 변경되는 것을 방지할 수 있고, 리스트보다 메모리를 적게 사용한다는 장점이 있습니다.
# 튜플 예시 coordinates = (10, 20) person = ("John", 25, "New York") # 튜플은 수정 불가능 # coordinates[0] = 30 # TypeError 발생
Python
복사

(3) range

연속된 정수 시퀀스를 생성하는 자료형입니다. range()는 시작 값부터 끝 값 전까지의 연속된 숫자를 만들어냅니다. 예를 들어, range(5)는 0부터 4까지의 숫자를 생성하고, range(2, 5)는 2부터 4까지의 숫자를, range(0, 10, 2)는 0부터 10 미만까지 2씩 증가하는 숫자(0,2,4,6,8)를 생성합니다. range는 실제로 모든 숫자를 메모리에 저장하지 않고, 필요할 때마다 숫자를 생성하기 때문에 메모리를 효율적으로 사용할 수 있습니다.
# range 예시 numbers = range(5) # 0, 1, 2, 3, 4 even = range(2, 10, 2) # 2, 4, 6, 8 for i in numbers: print(i)
Python
복사
range는 파이썬의 내장 함수(built-in function)로, 연속된 숫자를 만들어내는 데 사용되는 기본 도구입니다. 다른 프로그래밍 언어처럼 별도의 import 없이 바로 사용할 수 있습니다.
여기서 잠깐! import란 무엇일까요? import는 다른 사람이 만든 코드나 파이썬의 추가 기능을 우리 프로그램에서 사용할 수 있게 해주는 명령어입니다. 예를 들어, 수학 계산을 위한 'math' 모듈이나 랜덤 숫자를 생성하는 'random' 모듈을 가져올 때 사용합니다. 하지만 range()처럼 자주 사용되는 기본 기능들은 import 없이도 바로 사용할 수 있죠! import는 따로 페이지를 만들어 설명할것입니다.
# import 예시 import math print(math.pi) # 3.141592653589793 import random print(random.randint(1, 10)) # 1부터 10 사이의 랜덤한 숫자
Python
복사

(4) 문자열(str)

위에서 봤던 그 문자열도 시퀀스자료로 사용 할 수 있습니다. 문자들의 시퀀스(순서가 있는 문자들의 나열)입니다. 작은따옴표(' ')나 큰따옴표(" ")로 문자열을 감싸서 생성합니다. 예를 들어 "Hello"나 'Python'과 같이 작성하며, 따옴표 안에는 알파벳, 숫자, 특수문자, 공백 등 어떤 문자든 넣을 수 있습니다. 문자열은 각 문자에 순서대로 번호(인덱스)가 매겨져 있어서, 특정 위치의 문자를 쉽게 찾을 수 있습니다.
# 문자열 예시 text = "Hello" name = 'Python' # 문자열 조작 print(text[0]) # 'H' print(text[1:4]) # 'ell' print(text + name) # 'HelloPython'
Python
복사

(5) bytes

바이트(bytes)는 컴퓨터가 이해하는 가장 기본적인 데이터 단위를 저장하는 시퀀스형입니다. 예를 들어 이미지나 음악 파일과 같은 이진 데이터를 다룰 때 사용되며, 각 바이트는 0부터 255 사이의 값을 가질 수 있습니다. 파일을 읽고 쓰거나 네트워크 통신을 할 때도 자주 사용됩니다.
# bytes 예시 data = bytes([65, 66, 67]) # ASCII 코드 text_bytes = b"Hello" print(data) # b'ABC'
Python
복사
bytes는 우리가 많이 쓰지 않을겁니다. 주로 이미지나 음악 파일을 다루는 특수한 경우나 네트워크 프로그래밍을 할 때 사용되기 때문입니다. 우리는 기초 프로그래밍을 배우는 단계이므로, bytes에 대해서는 이정도만 알아두시면 충분합니다.

5. 매핑형

딕셔너리는 실제 사전처럼 단어와 뜻이 쌍을 이루듯이, 키(key)와 값(value)이 쌍을 이루는 자료형입니다. 예를 들어 학생의 정보를 저장할 때, '이름'이라는 키에 '철수'라는 값을, '나이'라는 키에 '20'이라는 값을 연결해서 저장할 수 있습니다.
주요 특징:
중괄호 {}로 데이터를 감싸서 생성
원하는 값을 키를 통해 즉시 찾을 수 있음
키는 유일해야 하지만, 값은 중복 가능
# 딕셔너리 예시 student = { 'name': '철수', 'age': 20, 'hobby': ['게임', '독서'] } # 값 가져오기 print(student['name']) # 철수 # 값 추가/수정하기 student['grade'] = 'A' # 새로운 키-값 추가 student['age'] = 21 # 기존 값 수정 # 값 삭제하기 del student['hobby']
Python
복사
딕셔너리는 리스트와 함께 파이썬 프로그래밍에서 가장 핵심적인 자료형입니다. 실제로 대부분의 프로그램에서 데이터를 저장하고 관리할 때 이 두 자료형을 주로 활용하게 됩니다.
여기서 잠깐 시퀀스형과 매핑형에서 리스트와 딕셔너리의 특징을 눈치채셨나요? 제일 처음 본 페이지에 나왔던 문자열, 숫자, 실수들을 이용해 연결하거나 매핑하는 것이죠. 특이하죠? 자료형은 단독으로도 쓰이지만 서로 조합해서도 쓰입니다. 이렇게 만든 데이터는 메모리에 저장되어 여러 곳에서 사용되다가, 나중에는 데이터베이스나 엑셀, feather, csv, parquet과 같은 디스크 저장소에 저장됩니다. 재미있는 예를 들어볼까요? 우리가 잘 아는 엑셀은 어떤 구조를 가졌을까요? 1행에 1, 2, 3, 4가 있다고 가정해봅시다. 이는 [1, 2, 3, 4]라는 리스트 구조입니다. 2행에 5, 6, 7, 8, 9는 [5, 6, 7, 8, 9] 구조이고, 1행과 2행을 통틀어 표현하면 [[1, 2, 3, 4], [5, 6, 7, 8, 9]]라는 이중 리스트 구조로 이루어져 있습니다. 딕셔너리로도 표현이 가능한데요, 예를 들어 {'행1': [1, 2, 3, 4], '행2': [5, 6, 7, 8, 9]} 이런 식으로 각 행을 키로 하고 데이터를 값으로 저장할 수 있습니다.

6. 집합형

세트(set): 중복되지 않는 고유한 요소들의 모음입니다. 수학의 집합과 같은 개념으로, 순서가 없고 중복된 값을 허용하지 않습니다. 집합 연산(합집합, 교집합, 차집합 등)을 지원하며, 중괄호 {}를 사용하여 생성합니다.
# 세트 생성 numbers = {1, 2, 3, 4, 5} fruits = {'apple', 'banana', 'orange'} # 중복된 값은 자동으로 제거됨 numbers = {1, 2, 2, 3, 3, 4, 5} # 결과: {1, 2, 3, 4, 5} # 집합 연산 set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1 | set2) # 합집합: {1, 2, 3, 4, 5} print(set1 & set2) # 교집합: {3} print(set1 - set2) # 차집합: {1, 2} # 요소 추가/삭제 fruits.add('grape') # 요소 추가 fruits.remove('apple') # 요소 삭제
Python
복사

7. None

값이 없음을 나타내는 특별한 자료형입니다. 파이썬에서는 None을 사용하여 결측치(missing value)나 아직 값이 할당되지 않은 상태를 표현합니다. 데이터 분석에서는 결측치를 표현하는 다양한 방법이 있는데, 파이썬의 None 외에도 pandas 라이브러리에서는 NaN(Not a Number), NA(Not Available), null 등으로도 표현할 수 있습니다. 예를 들어 설문조사에서 응답하지 않은 항목이나 센서에서 데이터를 수집하지 못한 경우 등을 이러한 결측치로 표현합니다.

자료형 변환

파이썬에서는 다음과 같은 함수들을 사용하여 자료형을 변환할 수 있습니다:
int(): 정수형으로 변환
float(): 실수형으로 변환
str(): 문자열로 변환
list(): 리스트로 변환
tuple(): 튜플로 변환
set(): 세트로 변환
# 자료형 변환 예시 num_str = "123" # 문자열 num_int = int(num_str) # 정수로 변환 print(num_int + 10) # 133 float_num = 3.14 # 실수 str_num = str(float_num) # 문자열로 변환 print("파이 값은 " + str_num) # "파이 값은 3.14" my_list = [1, 2, 2, 3, 3, 3] my_set = set(my_list) # 세트로 변환 (중복 제거) print(my_set) # {1, 2, 3} my_tuple = tuple(my_list) # 튜플로 변환 print(my_tuple) # (1, 2, 2, 3, 3, 3)
Python
복사

자료형 확인하기

type() 함수를 사용하여 변수의 자료형을 확인할 수 있습니다:
x = 10 print(type(x)) # <class 'int'> y = "Hello" print(type(y)) # <class 'str'> z = [1, 2, 3] print(type(z)) # <class 'list'>
Python
복사

위에서 학습한거 연습해야죠?

연습한거 스레드 답글로 달아주면 참 좋겠네요!!! 참고로 google colab은 모바일에서도 실행 할 수 있습니다. PC가 없어서 공부 못한다는 말을 할 수 없는 시대인게죠!
Google Colab의 유용한 팁을 하나 알려드릴게요!
좌측에 목차가 자동으로 생성됩니다. 텍스트 셀에서 #은 마크다운 문법인데요, # 한 개는 가장 큰 제목1, ## 두 개는 제목2, ### 세 개는 제목3과 같은 역할을 합니다. Colab이 이 마크다운 제목들을 자동으로 인식해서 좌측에 목차로 보여줍니다.
궁금하거나 모르는 부분이 있다면 스레드에 답글을 남겨주세요! 어떤 페이지의 어떤 내용이 궁금한지 구체적으로 알려주시면 더욱 좋습니다. 내용에 대한 응원 메시지도 환영해요!