본문 바로가기
IT⦁영어⦁하자보수/IT

3. 파이썬 기초 - 2장 파이썬 프로그래밍의 기초, 자료형 (1) [조코딩]

by 별꽃74 2025. 9. 19.

파이썬 기초 - 2장 파이썬 프로그래밍의 기초, 자료형 (1) | 2023 점프 투 파이썬

 
여러분, 안녕하세요! 👨‍🏫 오늘은 '점프 투 파이썬' 강의의 두 번째 시간, **'자료형(Data Type)'**에 대한 영상을 보고 왔습니다. 프로그래밍을 요리에 비유하자면, 자료형은 우리가 요리할 때 사용하는 다양한 재료들(쌀, 고기, 채소, 양념 등)과 같아요. 🧑‍🍳 아무리 훌륭한 레시피가 있어도 재료의 특성을 모르면 맛있는 요리를 만들 수 없겠죠? 파이썬의 자료형도 마찬가지입니다. 각 재료의 특징을 정확히 이해하고 상황에 맞게 활용해야만 우리가 원하는 프로그램을 만들 수 있습니다.
오늘 이 글에서는 파이썬의 핵심 재료들인 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합을 하나하나 깊이 있게 파헤쳐 볼 거예요. 전문가의 시각으로 이 재료들을 능숙하게 다루는 법을 알려드릴 테니, 여러분도 이 글을 읽고 나면 파이썬의 주방을 자유롭게 누비는 멋진 셰프가 될 수 있을 겁니다! 👨‍🍳✨


자료형, 프로그래밍의 기본 언어 💬

왜 자료형이 그렇게 중요할까요? 아주 간단한 예를 들어볼게요. 1 + 1이라는 연산을 생각해 봅시다. 만약 두 개의 1이 숫자라면, 컴퓨터는 당연히 그 결과를 2라고 계산할 겁니다. 하지만 만약 두 개의 1이 문자라면 어떨까요? 컴퓨터는 1이라는 문자와 1이라는 문자를 단순히 옆에 이어 붙여 '11'이라는 새로운 문자열을 만들게 됩니다. 이렇게 똑같은 데이터라도 그 **'형태'**에 따라 전혀 다른 결과가 나오기 때문에, 우리는 자료형의 종류와 특징을 정확히 알아야 합니다. 자료형은 컴퓨터에게 "이 데이터는 이렇게 다뤄야 해!"라고 말해주는 프로그래밍의 기본 언어라고 할 수 있습니다.


파이썬의 핵심 재료들, 자세히 살펴보기 🕵️‍♂️

파이썬에는 여러 가지 자료형이 있지만, 그중에서도 가장 기본적이고 자주 사용되는 핵심 재료들을 중심으로 깊이 있게 알아보겠습니다.

1. 숫자형 (Numbers) 🔢

숫자형은 말 그대로 숫자를 표현하는 자료형입니다. 크게 **정수(int)**와 **실수(float)**로 나뉩니다.

  • 정수(int): 소수점이 없는 숫자, 예를 들어 1, 100, -5와 같은 것들을 말합니다.
  • 실수(float): 소수점이 있는 숫자, 예를 들어 3.14, -0.5와 같은 것들을 말합니다.

숫자형은 우리가 수학 시간에 배웠던 것처럼 사칙연산이 가능합니다. 더하기(+), 빼기(-), 곱하기(*), 나누기(/)는 기본이죠. 또한, 거듭제곱(**)나머지(%), 그리고 **몫(//)**을 구하는 연산자도 있습니다. 💡

a = 10
b = 3

print(a + b)  # 더하기: 13
print(a * b)  # 곱하기: 30
print(a / b)  # 나누기: 3.3333...

# 거듭제곱: 10의 3승
print(a ** b) # 1000

# 나누기 연산자
print(a % b)  # 나머지: 10을 3으로 나눈 나머지, 1
print(a // b) # 몫: 10을 3으로 나눈 몫, 3

특히 // 연산자는 소수점 아래를 버리고 몫만 취하기 때문에, 정수형 연산을 할 때 매우 유용하게 사용됩니다.


2. 문자열 (String) 💬

문자열은 따옴표로 감싼 글자들을 말합니다. 'string'이라는 이름처럼 여러 글자가 실처럼 이어진 형태라고 생각하면 이해하기 쉽죠. 'hello', "Python", '''안녕하세요'''처럼 작은따옴표, 큰따옴표, 그리고 따옴표 3개를 연속으로 사용하여 표현할 수 있습니다. 📝

  • 문자열 연산: 문자열도 연산이 가능합니다. 덧셈(+)은 문자열을 서로 연결하고, 곱셈(*)은 문자열을 반복하는 역할을 합니다.
  • a = "Hello"
    b = "Python"
    print(a + b)  # "HelloPython"
    print(a * 3)  # "HelloHelloHello"
    
  • 인덱싱(Indexing)과 슬라이싱(Slicing): 문자열의 특정 부분을 자유자재로 다루는 매우 중요한 기술입니다. 🔪
    • 인덱싱: 문자열의 특정 위치(인덱스)에 있는 한 글자를 추출하는 것을 말합니다. 인덱스는 0부터 시작하며, 음수 인덱스는 뒤에서부터 세는 것을 의미합니다.
    • 슬라이싱: 문자열의 특정 범위(슬라이스)를 잘라내는 것을 말합니다. [시작:끝] 형태로 사용하며, 끝 위치의 문자는 포함되지 않습니다.
  • 포매팅(Formatting): 문자열에 변수 값을 삽입하여 새로운 문자열을 만드는 방법입니다. 특히 f-문자열 방식을 사용하면 가장 간결하고 직관적으로 코드를 작성할 수 있습니다. 마치 미리 만들어 둔 문장에 빈칸을 채워 넣는 것처럼 말이죠. ✍️
    name = "홍길동"
    age = 30
    print(f"제 이름은 {name}이고, 나이는 {age}살입니다.")
    
  • 다양한 문자열 함수: 파이썬은 문자열을 다루기 위한 매우 유용한 내장 함수들을 제공합니다.
    • len(): 문자열의 길이를 반환합니다.
    • count('a'): 특정 문자가 몇 번 나오는지 셉니다.
    • find('a'): 특정 문자가 처음으로 나타나는 위치(인덱스)를 찾습니다.
    • replace('a', 'b'): 특정 문자를 다른 문자로 바꿉니다.
    • split(): 문자열을 특정 구분자를 기준으로 나누어 리스트로 만듭니다.

3. 리스트 (List) 📋

리스트는 여러 개의 값(요소)을 하나의 변수에 담아 관리하는 자료형입니다. 대괄호([])를 사용하며, 숫자, 문자열, 심지어 다른 리스트까지 다양한 종류의 자료형을 함께 저장할 수 있습니다. 🧺 리스트는 내용물을 마음대로 추가, 삭제, 수정할 수 있는 가변(Mutable) 자료형입니다. 마치 마음대로 물건을 넣고 뺄 수 있는 장바구니 같죠. 🛒

  • 인덱싱과 슬라이싱: 리스트도 문자열처럼 인덱싱과 슬라이싱이 가능합니다.
  • 리스트 함수: 리스트는 내부 요소를 조작할 수 있는 다양한 함수들을 제공합니다.
    • append(): 리스트 맨 뒤에 새로운 요소를 추가합니다.
    • sort(): 리스트의 요소를 정렬합니다.
    • reverse(): 리스트의 순서를 뒤집습니다.
    • insert(인덱스, 값): 원하는 위치에 새로운 요소를 삽입합니다.
    • remove(값): 리스트에서 특정 값을 가진 요소를 삭제합니다.
    • pop(): 리스트의 맨 마지막 요소를 빼냅니다.

4. 튜플 (Tuple) 📦

튜플은 리스트와 매우 비슷하지만, 한 가지 중요한 차이점이 있습니다. 바로 내부의 값을 변경할 수 없다는 점입니다. 🚫 소괄호(())를 사용하여 만듭니다. 한 번 정의된 튜플은 더하거나 빼거나 값을 수정할 수 없기 때문에, 데이터가 변경되면 안 되는 경우에 사용합니다. 리스트가 '장바구니'라면 튜플은 '한번 봉인하면 내용물을 바꿀 수 없는 상자'라고 생각하면 쉽습니다. 📦

  • 튜플은 왜 쓸까? 튜플의 가장 큰 장점은 안정성입니다. 데이터가 절대 변하지 않음을 보장하기 때문에, 프로그램이 예상치 못한 오류를 일으킬 가능성을 줄여줍니다. 예를 들어, 함수의 인자로 여러 값을 전달할 때나, 데이터베이스에서 가져온 변경 불가능한 데이터를 저장할 때 유용하게 사용됩니다.

5. 딕셔너리 (Dictionary) 🔑

딕셔너리는 **키(Key)**와 **값(Value)**이 한 쌍을 이루는 자료형입니다. 중괄호({})를 사용하며, {'이름': '홍길동', '나이': 30}과 같은 형태로 데이터를 저장합니다. 마치 사전(Dictionary)처럼 키를 통해 값을 찾을 수 있습니다. 🗝️

  • 키(Key): 고유한 이름으로, 중복될 수 없습니다.
  • 값(Value): 키에 해당하는 데이터입니다.

딕셔너리는 순서가 없지만, 대신 키를 통해 값을 매우 빠르게 찾을 수 있습니다. 마치 전화번호부에서 이름을 찾아 전화번호를 찾는 것과 같죠. ☎️

  • 딕셔너리 연산:
    • 추가: 딕셔너리['새로운키'] = 새로운값
    • 수정: 딕셔너리['기존키'] = 새로운값
    • 삭제: del 딕셔너리['키']

6. 집합 (Set) 👥

집합은 수학의 집합과 같은 개념입니다. 중괄호({})를 사용하며, 중복된 값을 허용하지 않습니다. 🚫 또한, 순서가 정해져 있지 않습니다.

  • 특징:
    • 중복 제거: 중복된 값이 있는 리스트를 집합으로 변환하면 자동으로 중복이 제거됩니다.
    • 순서 없음: 인덱싱이나 슬라이싱을 사용할 수 없습니다.
    • 집합 연산: 수학의 집합 연산(합집합, 교집합, 차집합)을 수행할 수 있습니다.
  • 집합 연산 예시:
  • s1 = {1, 2, 3, 4, 5}
    s2 = {4, 5, 6, 7, 8}
    
    # 합집합 (union): s1과 s2의 모든 요소 포함
    print(s1.union(s2))         # {1, 2, 3, 4, 5, 6, 7, 8}
    
    # 교집합 (intersection): s1과 s2에 공통으로 있는 요소
    print(s1.intersection(s2))  # {4, 5}
    
    # 차집합 (difference): s1에서 s2의 요소를 뺀 나머지
    print(s1.difference(s2))    # {1, 2, 3}
    

이처럼 집합은 고유한 값만 다루거나 데이터 간의 관계를 분석할 때 매우 유용합니다.


정리하며... ✍️

오늘은 파이썬 프로그래밍의 가장 기본적이면서도 중요한 '자료형'에 대해 깊이 있는 이야기를 나눠봤습니다. 파이썬은 이처럼 다양한 종류의 '재료'를 제공하여, 우리가 어떤 문제를 해결하든지 가장 적합한 도구를 선택할 수 있도록 해줍니다.
숫자는 계산을 할 때, 문자열은 글자를 다룰 때, 리스트는 순서대로 여러 값을 저장할 때, 튜플은 변경되지 않는 값을 안전하게 보관할 때, 딕셔너리는 키-값 형태로 데이터를 관리할 때, 그리고 집합은 중복을 제거하거나 집합 연산을 수행할 때 사용됩니다.
각 자료형의 특징을 정확히 이해하고 상황에 맞게 활용하는 것이야말로 진정한 프로그래밍 전문가의 첫걸음입니다. 🚶‍♂️ 이 멋진 재료들을 가지고 어떤 건물을 짓고 싶은가요? 여러분의 상상력과 함께 파이썬의 세계를 탐험해 보세요! 🌟