Python - 데이터 타입

배우고 있는 프로그래머 여러분, 환영합니다! 오늘은 Python 데이터 타입의 흥미로운 세계에 뛰어들어보겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 여러분이 이 Python 프로그래밍의 필수 요소를 이해할 수 있도록 안내해 드리게 되어 기쁩니다. 그럼, 가상의 노트북을 준비해 주시고, 함께 이 여정을 떠나보겠습니다!

Python - Data Types

Python의 데이터 타입

프로그래밍에서 데이터 타입은 다양한 정보를 저장하기 위한 다양한 컨테이너와 같습니다. 파티를 주고자 할 때, 다양한 물품을 위해 다양한 종류의 컨테이너를 사용하는 것처럼, Python에서도 다양한 데이터 타입을 사용하여 다양한 종류의 데이터를 저장합니다.

간단한 예시를 시작해 보겠습니다:

name = "Alice"
age = 25
height = 5.7
is_student = True

이 코드 조각에서 네 가지 다른 데이터 타입을 사용했습니다:

  • name은 문자열(text)
  • age는 정수(whole number)
  • height는 부동소수점(decimal number)
  • is_student는 논리값(True or False)

이 변수들은 각각 다른 유형의 데이터를 저장하고 있습니다. 파티에서 다양한 물품에 맞는 다양한 컨테이너를 사용하는 것과 같습니다.

Python 데이터 타입의 종류

Python에는 여러 내장 데이터 타입이 있습니다. 하나씩 살펴보겠습니다:

1. 숫자 타입

a. 정수(int)

정수는 부호가 있는 정수로, 소수점이 없습니다.

my_age = 30
temperature = -5

여기서 my_agetemperature는 모두 정수입니다. 정수는 다양한 수학적 연산을 수행할 수 있습니다:

x = 10
y = 3
print(x + y)  # 덧셈: 13
print(x - y)  # 뺄셈: 7
print(x * y)  # 곱셈: 30
print(x / y)  # 나눗셈: 3.3333... (참고: 실제로는 부동소수점을 반환합니다)
print(x // y) # 내림 나눗셈: 3 (가장 가까운 정수로 내림)
print(x % y)  # 나머지: 1
print(x ** y) # 거듭제곱: 1000

b. 부동소수점(float)

부동소수점은 소수점이 있는 숫자입니다.

pi = 3.14159
gravity = 9.81

부동소수점도 정수처럼 계산할 수 있습니다:

radius = 5
area = pi * (radius ** 2)
print(f"원의 면적은 {area:.2f}입니다")  # 출력: 원의 면적은 78.54입니다

c. 복소수(complex)

복소수는 실수와 허수 부분으로 구성되어 있으며, 'j'로 표시됩니다.

z = 2 + 3j
print(z.real)  # 출력: 2.0
print(z.imag)  # 출력: 3.0

2. 시퀀스 타입

a. 문자열(str)

문자열은 문자들의 시퀀스로, 단일 또는 이중 인용符에 감싸져 있습니다.

greeting = "Hello, World!"
name = 'Alice'
multi_line = """이것은
멀티라인
문자열입니다."""

문자열에는 많은 유용한 메서드가 있습니다:

message = "Python은 멋집니다"
print(message.upper())  # 출력: PYTHON은 멋집니다
print(message.split())  # 출력: ['Python은', '멋집니다']
print(len(message))     # 출력: 20 (문자열의 길이)

b. 리스트(list)

리스트는 순서가 있고 수정할 수 있는 시퀀스로, 꺾쇠괄호로 표시됩니다.

fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "둘", 3.0, [4, 5]]

리스트는 다양한 연산을 수행할 수 있습니다:

fruits.append("orange")  # 항목 추가
fruits.remove("banana")  # 항목 제거
print(fruits[0])         # 인덱스 접근: apple
print(fruits[-1])        # 마지막 항목: orange
print(fruits[1:3])       # 슬라이싱: ['cherry', 'orange']

c. 튜플(tuple)

튜플은 순서가 있고 수정할 수 없는 시퀀스로, 괄호로 표시됩니다.

coordinates = (4, 5)
rgb = (255, 0, 128)

튜플은 리스트와 유사하지만, 생성 후 수정할 수 없습니다:

print(coordinates[0])  # 인덱스 접근: 4
# coordinates[0] = 6   # 이것은 에러를 일으킵니다

3. 매핑 타입: 딕셔너리(dict)

딕셔너리는 키-값 쌍을 저장하며, 중괄호로 표시됩니다.

person = {
"name": "Bob",
"age": 30,
"city": "New York"
}

딕셔너리는 구조화된 데이터에 매우 유용합니다:

print(person["name"])   # 키로 접근: Bob
person["job"] = "Developer"  # 새로운 키-값 쌍 추가
del person["age"]       # 키-값 쌍 제거
print(person.keys())    # 모든 키 가져오기
print(person.values())  # 모든 값 가져오기

4. 집합 타입

a. 집합(set)

집합은 순서가 없고 고유한 요소들의 컬렉션으로, 중괄호로 표시됩니다.

fruits = {"apple", "banana", "cherry"}
numbers = {1, 2, 3, 4, 5}

집합은 중복을 제거하고 집합 연산을 수행하는 데 좋습니다:

fruits.add("orange")
fruits.remove("banana")
print("apple" in fruits)  # 멤버십 확인: True

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))        # 합집합: {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # 교집합: {3}

b. 특정 집합(frozenset)

특정 집합은 수정할 수 없는 집합입니다.

fs = frozenset([1, 2, 3])
# fs.add(4)  # 이것은 에러를 일으킵니다

Python 데이터 타입 변환

때로는 데이터를 한 타입에서 다른 타입으로 변환해야 합니다. Python는 이를 위한 내장 함수를 제공합니다:

# 문자열을 정수로 변환
age_str = "25"
age_int = int(age_str)
print(age_int + 5)  # 출력: 30

# 정수를 문자열로 변환
number = 42
number_str = str(number)
print("답은 " + number_str)  # 출력: 답은 42

# 문자열을 부동소수점으로 변환
price_str = "19.99"
price_float = float(price_str)
print(price_float * 2)  # 출력: 39.98

# 리스트를 집합으로 변환 (중복 제거)
numbers = [1, 2, 2, 3, 3, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # 출력: {1, 2, 3, 4, 5}

데이터 타입 변환 함수

다음은 일반적으로 사용되는 데이터 타입 변환 함수의 안내표입니다:

함수 설명 예시
int(x) x를 정수로 변환 int("10")10
float(x) x를 부동소수점으로 변환 float("3.14")3.14
str(x) x를 문자열로 변환 str(42)"42"
list(x) x를 리스트로 변환 list("hello")['h', 'e', 'l', 'l', 'o']
tuple(x) x를 튜플로 변환 tuple([1, 2, 3])(1, 2, 3)
set(x) x를 집합으로 변환 set([1, 2, 2, 3]){1, 2, 3}
dict(x) 딕셔너리를 생성. x는 키-값 쌍의 시퀀스여야 합니다 dict([('a', 1), ('b', 2)]){'a': 1, 'b': 2}
bool(x) x를 논리값으로 변환 bool(1)True, bool(0)False

이 함수들은 원래의 값에 변경을 가하지 않습니다; 원하는 타입의 새로운 값을 만듭니다.

그리고 여러분은 그렇게 함께 Python 데이터 타입의 세계를 여행하게 되었습니다. 간단한 정수에서 복잡한 딕셔너리까지, 각 데이터 타입은 여러분의 프로그래밍 도구箱에 강력한 도구입니다. 다양한 문제를 해결하는 데 도움이 될 것입니다.

Python 모험을 계속하며, 여러분은 이 데이터 타입들을 매일 사용하게 될 것입니다. 그들은 여러분의 프로그램의 빌딩 블록, 코딩 레시피의 재료입니다. 그럼, 그들을 써보고, 실험해 보고, 가장 중요한 것은 즐겨 보세요!

기억하십시오, 프로그래밍에서는 처음에 맞출 필요는 없습니다. 그것은 배우고, 성장하고, 그 과정을 즐기는 것이 중요합니다. 그래서, 실수를 하지 마세요 - 그들은 여러분이 Python 마스터가 되는 길의 조각입니다!

이제, 코드를 써보세요! 그리고 항상 기억하십시오: Python에서는 생활에서와 마찬가지로 타입이 중요합니다! ?✨

Credits: Image by storyset