변수 데이터 타입

파이썬에서 변수는 다양한 데이터 타입을 가질 수 있으며, 변수의 타입은 데이터의 종류에 따라 자동으로 결정됩니다. 여기서는 파이썬의 **기본 데이터 타입**과 그 특징을 설명합니다.


1. 숫자형 (Numeric Types)

(1) 정수형 (int)

  • 설명: 정수를 표현하는 타입.
  • 크기의 제한이 없으며, 메모리가 허용하는 범위까지 사용 가능.
  • 예제:
    age = 25
    temperature = -10
    print(type(age))  # <class 'int'>
    

(2) 실수형 (float)

  • 설명: 부동소수점 숫자를 표현.
  • 소수점 이하 자릿수를 포함한 값을 다룰 때 사용.
  • 예제:
    pi = 3.14
    temperature = -0.5
    print(type(pi))  # <class 'float'>
    

(3) 복소수형 (complex)

  • 설명: 복소수를 표현. 실수부와 허수부를 포함.
  • a + bj 형태로 표현하며, j는 허수를 나타냄.
  • 예제:
    complex_num = 3 + 4j
    print(type(complex_num))  # <class 'complex'>
    print(complex_num.real)  # 3.0 (실수부)
    print(complex_num.imag)  # 4.0 (허수부)
    

2. 문자열 (String)

  • 설명: 문자나 문자열을 표현하는 타입. 작은따옴표(') 또는 큰따옴표(")로 감싸서 표현.
  • 문자열은 불변(immutable)하며, 인덱싱과 슬라이싱을 지원.
  • 예제:
    name = "Alice"
    message = 'Hello, World!'
    print(type(name))  # <class 'str'>
    print(name[0])  # 'A' (인덱싱)
    print(name[:3])  # 'Ali' (슬라이싱)
    

3. 불린형 (Boolean)

  • 설명: 참(True)과 거짓(False)을 표현하는 타입.
  • 주로 조건문이나 논리 연산에 사용.
  • 예제:
    is_active = True
    is_logged_in = False
    print(type(is_active))  # <class 'bool'>
    print(is_active and is_logged_in)  # False
    

4. NoneType

  • 설명: 값이 없음을 나타내는 타입. None은 다른 언어의 null과 유사.
  • 주로 변수를 초기화하거나 함수에서 반환 값이 없음을 나타낼 때 사용.
  • 예제:
    result = None
    print(type(result))  # <class 'NoneType'>
    

5. 시퀀스형 (Sequence Types)

(1) 리스트 (list)

  • 설명: 변경 가능한(mutable) 순서가 있는 컬렉션. 다양한 데이터 타입 혼합 가능.
  • 예제:
    fruits = ["apple", "banana", "cherry"]
    print(type(fruits))  # <class 'list'>
    fruits.append("orange")  # 리스트에 추가
    print(fruits)  # ['apple', 'banana', 'cherry', 'orange']
    

(2) 튜플 (tuple)

  • 설명: 변경 불가능한(immutable) 순서가 있는 컬렉션.
  • 예제:
    coordinates = (10, 20)
    print(type(coordinates))  # <class 'tuple'>
    # coordinates[0] = 15  # TypeError: 튜플은 변경 불가
    

(3) 문자열 (str)

  • 이미 위에서 설명한 대로, 문자열도 시퀀스형의 일종.

6. 집합형 (Set Types)

(1) 집합 (set)

  • 설명: 중복되지 않는 항목들의 변경 가능한(mutable) 집합. 순서가 없음.
  • 예제:
    numbers = {1, 2, 3, 3, 4}
    print(type(numbers))  # <class 'set'>
    print(numbers)  # {1, 2, 3, 4}
    

(2) 불변 집합 (frozenset)

  • 설명: 변경 불가능한(immutable) 집합.
  • 예제:
    immutable_set = frozenset([1, 2, 3])
    print(type(immutable_set))  # <class 'frozenset'>
    

7. 매핑형 (Mapping Types)

딕셔너리 (dict)

  • 설명: 키-값 쌍으로 이루어진 변경 가능한 컬렉션.
  • 키는 고유해야 하며, 해시 가능한 객체여야 함.
  • 예제:
    student = {"name": "Alice", "age": 25, "grade": "A"}
    print(type(student))  # <class 'dict'>
    print(student["name"])  # 'Alice'
    student["age"] = 26  # 값 변경
    

8. 바이너리 데이터 타입

(1) 바이트 (bytes)

  • 설명: 불변(immutable)한 바이너리 데이터를 표현.
  • 예제:
    byte_data = b"Hello"
    print(type(byte_data))  # <class 'bytes'>
    

(2) 바이트 배열 (bytearray)

  • 설명: 변경 가능한(mutable) 바이너리 데이터.
  • 예제:
    byte_array = bytearray([65, 66, 67])  # ASCII 코드
    print(type(byte_array))  # <class 'bytearray'>
    

9. 기타 타입

(1) 열거형 (enumerate)

  • 설명: 열거된 객체를 반환.
  • 예제:
    items = ["a", "b", "c"]
    for index, value in enumerate(items):
        print(index, value)
    

(2) 레인지 (range)

  • 설명: 일정 범위의 숫자를 생성하는 객체.
  • 예제:
    for i in range(5):
        print(i)  # 0, 1, 2, 3, 4
    

파이썬의 데이터 타입은 매우 다양하며, 각 타입은 특정 상황에서 적합하게 사용할 수 있습니다. 필요에 따라 적절한 타입을 선택하면 코드의 가독성과 효율성이 향상됩니다.