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