Programming Languages/Python

데이터 타입(Data Types) 알아보기

newclass 2025. 3. 21. 07:13

파이썬에는 여러 가지 데이터 타입이 있습니다. 이는 학교 과목(국어, 수학, 영어 등)이 다른 것처럼, 각 데이터도 종류가 다르다고 생각하면 됩니다.

1. 숫자(Numbers)

# 정수(Integer) - 소수점이 없는 숫자
a = 10
# 실수(Float) - 소수점이 있는 숫자
b = 3.14
# 복소수(Complex) - 실수부와 허수부로 구성된 숫자
c = 3 + 4j

print(a, type(a))  # 10 <class 'int'>
print(b, type(b))  # 3.14 <class 'float'>
print(c, type(c))  # (3+4j) <class 'complex'>

숫자는 일상생활에서 가장 많이 사용하는 데이터 중 하나입니다:

  • 정수(int): 1, 2, 3, -5, 0 등 소수점이 없는 숫자
  • 실수(float): 3.14, 2.71828, -0.5 등 소수점이 있는 숫자
  • 복소수(complex): 3+4j 등 수학의 복소수를 표현 (j는 허수 단위)

1. 정수 (Integer): 소수점이 없는 숫자

age = 25
negative = -10
zero = 0
big_number = 1000000

2. 실수 (Float): 소수점이 있는 숫자

height = 175.5
pi = 3.14159
negative_float = -0.5

3.복소수 (Complex): 실수와 허수부로 구성된 숫자

complex_number = 3 + 4j  # 3은 실수부, 4j는 허수부

 

2. 문자열(Strings)

문자열은 텍스트 데이터를 저장합니다. 이는 편지나 메모와 같습니다.

# 문자열 선언
인사말 = "안녕하세요!"
긴_문장 = '''여러 줄에 걸친
문자열을 작성할 때는
따옴표 세 개를 사용합니다.'''

print(인사말)
print(긴_문장)

# 문자열 일부 추출하기(슬라이싱)
s = "Python Programming"
print(s[0])      # P (첫 번째 문자)
print(s[0:6])    # Python (0부터 5까지)

문자열에 대해 알아야 할 점:

  • 문자열은 따옴표(' 또는 ")로 둘러싸여 있습니다.
  • 파이썬에서 인덱스는 0부터 시작합니다 (첫 번째 문자의 위치는 0).
  • 슬라이싱을 사용하면 문자열의 일부를 추출할 수 있습니다.
  • 문자열은 변경할 수 없는(immutable) 데이터 타입입니다. 즉, 한 번 생성된 문자열의 일부를 직접 변경할 수 없습니다.

문자열은 작은따옴표(') 또는 큰따옴표(")로 둘러싸인 텍스트입니다.

name = "홍길동"
message = '안녕하세요'
multiline = """이것은
여러 줄에 걸친
문자열입니다."""

문자열 연산

# 문자열 연결
first_name = "홍"
last_name = "길동"
full_name = first_name + last_name  # "홍길동"

# 문자열 반복
echo = "안녕" * 3  # "안녕안녕안녕"

# 문자열 인덱싱 (0부터 시작)
text = "파이썬"
first_char = text[0]  # "파"
last_char = text[-1]  # "썬"

# 문자열 슬라이싱 (범위 추출)
text = "파이썬 프로그래밍"
substr = text[0:3]  # "파이썬"

3. 불리언(Boolean)

불리언은 참(True) 또는 거짓(False) 두 가지 값만 가질 수 있습니다. 이것은 마치 예/아니오 질문의 답변과 같습니다.

# 참/거짓 값
참 = True
거짓 = False
print(참, 거짓)      # True False

# 비교 연산의 결과로 불리언 값을 얻을 수 있습니다
print(10 > 5)      # True - 10이 5보다 큰가요? 네!
print(1 == 2)      # False - 1이 2와 같은가요? 아니요!
print(5 >= 5)      # True - 5가 5보다 크거나 같은가요? 네!

 

is_student = True
is_adult = False

# 비교 연산의 결과는 불리언입니다
x = 10
is_greater = x > 5  # True
is_equal = x == 5   # False

불리언 타입은 주로 조건문과 반복문에서 많이 사용됩니다. 어떤 조건이 참인지 거짓인지에 따라 프로그램의 실행 흐름을 제어할 수 있습니다.

None 타입

None은 값이 없음을 나타내는 특별한 데이터 타입입니다.

result = None  # 아직 값이 할당되지 않았음을 표시

타입 확인 및 변환

type() 함수를 사용하여 변수의 데이터 타입을 확인할 수 있습니다.

x = 10
y = 3.14
name = "파이썬"
is_valid = True

print(type(x))       # <class 'int'>
print(type(y))       # <class 'float'>
print(type(name))    # <class 'str'>
print(type(is_valid))  # <class 'bool'>

데이터 타입 간의 변환

# 문자열 -> 숫자
age_str = "25"
age_int = int(age_str)  # 25 (정수)
height_str = "175.5"
height_float = float(height_str)  # 175.5 (실수)

# 숫자 -> 문자열
count = 10
count_str = str(count)  # "10" (문자열)

# 불리언 변환
empty_string = ""
print(bool(empty_string))  # False (빈 문자열은 False)
print(bool("Hello"))       # True (비어있지 않은 문자열은 True)
print(bool(0))             # False (0은 False)
print(bool(1))             # True (0이 아닌 숫자는 True)

 

4. 리스트(Lists)

리스트는 여러 항목을 순서대로 저장하는 데이터 타입입니다. 이것은 마치 장바구니에 여러 물건을 담는 것과 같습니다.

# 리스트 생성 - 대괄호 [ ] 사용
과일 = ["사과", "바나나", "오렌지"]  # 문자열로 구성된 리스트
숫자 = [1, 2, 3, 4, 5]           # 숫자로 구성된 리스트
혼합 = [1, "파이썬", True, 3.14]   # 다양한 타입의 데이터를 담은 리스트

print(과일)  # ['사과', '바나나', '오렌지']
print(숫자)  # [1, 2, 3, 4, 5]
print(혼합)  # [1, '파이썬', True, 3.14]

# 리스트 조작하기
과일.append("포도")      # 리스트 끝에 항목 추가
print(과일)            # ['사과', '바나나', '오렌지', '포도']

과일.remove("바나나")    # 항목 제거
print(과일)            # ['사과', '오렌지', '포도']

print(과일[0])         # 첫 번째 항목 접근: '사과'
과일[0] = "키위"        # 항목 변경
print(과일)            # ['키위', '오렌지', '포도']

# 리스트 길이 확인
print(len(과일))        # 3 - 리스트에 있는 항목의 개수

리스트에 대해 알아야 할 점:

  • 리스트는 대괄호 []로 생성합니다.
  • 리스트 항목은 쉼표로 구분합니다.
  • 리스트는 다양한 타입의 데이터를 함께 저장할 수 있습니다.
  • .append(), .remove() 등의 메서드를 사용하여 리스트를 수정할 수 있습니다.
  • 리스트는 인덱스를 사용하여 항목에 접근할 수 있습니다 (0부터 시작).
  • 리스트는 변경 가능한(mutable) 데이터 타입입니다.