≣ 목차
파이썬(Python)에서 가장 중요한 요소 중 하나는 데이터 타입입니다. 데이터 타입은 변수에 저장되는 데이터의 성격을 정의하며, 프로그램의 동작 방식을 결정합니다. 이번 글에서는 숫자, 문자열, 리스트, 딕셔너리 등 파이썬에서 가장 많이 사용되는 데이터 타입을 초보자들도 쉽게 이해할 수 있도록 설명하겠습니다.
♛ 공지
본 포스팅의 무단도용 및 배포를 금지합니다.
1. 숫자(Numbers)
파이썬에서 숫자 데이터 타입은 정수, 실수, 복소수로 나눌 수 있습니다. 숫자는 수학 연산에 많이 사용되며, 정수와 실수 간의 계산도 자유롭게 가능합니다.
1) 정수형(Integer): 소수점이 없는 숫자입니다.
a = 10 # 정수형
b = -5 # 음수
2) 실수형(Float): 소수점을 포함하는 숫자입니다.
pi = 3.14 # 실수형
g = -9.81 # 음수 실수형
3) 복소수형(Complex): 실수와 허수로 구성된 숫자입니다. j를 사용해 허수를 표현합니다.
z = 2 + 3j # 복소수
4) 기본적인 연산: 덧셈, 뺄셈, 곱셈, 나눗셈은 물론 제곱(**)과 나머지(%) 연산도 가능합니다.
x = 10
y = 3
print(x + y) # 13 (덧셈)
print(x ** y) # 1000 (10의 3승)
2. 문자열(String)
문자열은 문자의 집합을 나타내며, 작은 따옴표(')나 큰 따옴표(")로 묶어 표현합니다. 파이썬에서는 문자열을 다루는 다양한 기능을 제공하여 데이터 처리가 매우 편리합니다.
1) 문자열 선언: 문자열은 작은 따옴표나 큰 따옴표로 정의할 수 있습니다.
greeting = "Hello, World!"
name = 'Alice'
2) 문자열 연결: 문자열은 + 연산자를 사용해 연결할 수 있습니다.
full_greeting = greeting + " " + name
print(full_greeting) # "Hello, World! Alice"
3) 문자열 반복: * 연산자를 사용해 문자열을 반복할 수 있습니다.
repeated = "Hi! " * 3
print(repeated) # "Hi! Hi! Hi! "
4) 문자열 인덱싱과 슬라이싱: 문자열의 특정 문자에 접근하거나 부분 문자열을 추출할 수 있습니다.
word = "Python"
print(word[0]) # 'P' (인덱싱, 첫 번째 문자)
print(word[1:4]) # 'yth' (슬라이싱, 1번 인덱스부터 3번까지)
5) 문자열 메소드: len(), .upper(), .lower(), .replace() 등 문자열을 처리하는 유용한 메소드들이 있습니다.
message = "hello python"
print(message.upper()) # "HELLO PYTHON"
print(message.replace("python", "world")) # "hello world"
3. 리스트(List)
리스트는 여러 개의 데이터를 모아 하나의 변수에 저장할 수 있는 자료구조입니다. 대괄호([])를 사용하며, 서로 다른 타입의 데이터를 함께 저장할 수도 있습니다.
1) 리스트 선언: 대괄호 안에 데이터를 나열하여 리스트를 정의합니다.
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, "apple", 3.14, True]
2) 리스트 인덱싱과 슬라이싱: 리스트의 특정 요소에 접근하거나 부분 리스트를 추출할 수 있습니다.
print(numbers[0]) # 1 (첫 번째 요소)
print(numbers[2:4]) # [3, 4] (슬라이싱)
3) 리스트 추가와 삭제:
append(): 리스트의 끝에 요소를 추가합니다.
numbers.append(6)
print(numbers) # [1, 2, 3, 4, 5, 6]
remove(): 리스트에서 특정 값을 제거합니다.
numbers.remove(3)
print(numbers) # [1, 2, 4, 5, 6]
4) 리스트 내포(List Comprehension): 짧은 코드로 리스트를 생성할 수 있는 방법입니다.
squares = [x ** 2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
4. 딕셔너리(Dictionary)
딕셔너리는 키-값 쌍을 저장하는 자료구조입니다. 중괄호({})를 사용하며, 각각의 키는 고유해야 합니다. 딕셔너리는 빠른 데이터 검색을 위해 사용됩니다.
1) 딕셔너리 선언: 중괄호를 사용해 키와 값을 정의합니다.
person = {
"name": "Alice",
"age": 25,
"city": "New York"
}
2) 값 접근: 키를 이용해 값을 얻을 수 있습니다.
print(person["name"]) # "Alice"
print(person["age"]) # 25
3) 값 추가와 삭제:
추가: 새로운 키-값 쌍을 추가할 수 있습니다.
person["job"] = "Engineer"
print(person) # {'name': 'Alice', 'age': 25, 'city': 'New York', 'job': 'Engineer'}
삭제: del 키워드를 사용해 키-값 쌍을 삭제합니다.
del person["age"]
print(person) # {'name': 'Alice', 'city': 'New York', 'job': 'Engineer'}
4)딕셔너리 메소드:
.keys(): 딕셔너리의 모든 키를 반환합니다.
print(person.keys()) # dict_keys(['name', 'city', 'job'])
.values(): 딕셔너리의 모든 값을 반환합니다.
print(person.values()) # dict_values(['Alice', 'New York', 'Engineer'])
.items(): 키-값 쌍을 튜플 형태로 반환합니다.
print(person.items()) # dict_items([('name', 'Alice'), ('city', 'New York'), ('job', 'Engineer')])
7. QnA
1. 리스트와 딕셔너리의 차이점은 무엇인가요?
리스트는 순서가 있는 데이터 집합으로, 인덱스를 사용해 접근할 수 있는 데이터 타입입니다. 딕셔너리는 키-값 쌍으로 데이터를 저장하며, 특정 키를 사용해 값을 찾는 방식으로 동작합니다. 리스트는 순서가 중요할 때, 딕셔너리는 빠른 데이터 검색과 매핑이 필요할 때 유용합니다.
2. 파이썬에서 숫자형 데이터 타입의 종류는 무엇인가요?
파이썬에서 숫자형 데이터 타입은 크게 세 가지로 구분됩니다: 정수형(Integer), 실수형(Float), 복소수형(Complex)입니다. 정수형은 소수점이 없는 숫자를, 실수형은 소수점을 포함하는 숫자를, 복소수형은 실수와 허수 부분을 포함한 숫자를 나타냅니다.
3. 문자열을 리스트로 변환할 수 있나요?
네, 문자열을 리스트로 변환할 수 있습니다. 문자열을 하나씩 분리하여 리스트로 만들기 위해 list() 함수를 사용할 수 있습니다. 또는, split() 메소드를 사용해 특정 구분자로 문자열을 나누어 리스트로 변환할 수 있습니다.
word = "hello"
letters = list(word) # ['h', 'e', 'l', 'l', 'o']
sentence = "Hello Python World"
words = sentence.split() # ['Hello', 'Python', 'World']
4. 리스트에 다른 데이터 타입들을 함께 저장할 수 있나요?
네, 파이썬 리스트는 서로 다른 데이터 타입들을 함께 저장할 수 있습니다. 예를 들어, 정수, 실수, 문자열, 논리형 등을 한 리스트에 포함할 수 있습니다. 이는 파이썬 리스트의 유연성과 강력한 기능을 나타냅니다.
mixed_list = [1, "apple", 3.14, True]
5. 딕셔너리의 키로 리스트를 사용할 수 있나요?
아니요, 딕셔너리의 키는 변경 불가능한 데이터 타입이어야 합니다. 리스트는 변경 가능한 데이터 타입이기 때문에 딕셔너리의 키로 사용할 수 없습니다. 대신 튜플과 같은 변경 불가능한 타입을 키로 사용할 수 있습니다.
6. 파이썬에서 문자열은 변경할 수 있나요?
아니요, 파이썬 문자열은 불변(immutable) 특성을 가집니다. 즉, 문자열을 생성한 후에는 그 내용을 변경할 수 없습니다. 문자열을 변경하려면 새로운 문자열을 생성해야 합니다.
text = "hello"
# text[0] = 'H' # 오류 발생 (불변 특성 때문에 수정 불가)
text = "H" + text[1:] # 새로운 문자열 생성 ("Hello")
7. 리스트와 문자열의 공통점은 무엇인가요?
리스트와 문자열은 둘 다 인덱싱과 슬라이싱이 가능합니다. 예를 들어, 문자열의 특정 문자나 리스트의 특정 요소에 인덱스를 사용해 접근할 수 있으며, 부분 문자열이나 부분 리스트를 슬라이싱을 통해 추출할 수 있습니다. 둘 다 시퀀스 데이터 타입에 속하기 때문에 이와 같은 공통점을 가집니다.
word = "Python"
letters = word[0:3] # 'Pyt'
numbers = [1, 2, 3, 4, 5]
subset = numbers[1:4] # [2, 3, 4]
8. 리스트의 크기를 변경할 수 있나요?
네, 리스트는 동적 크기를 가지기 때문에 요소를 추가하거나 삭제하여 크기를 변경할 수 있습니다. append(), remove(), extend(), pop() 등을 사용해 리스트의 크기를 유동적으로 조정할 수 있습니다.
numbers = [1, 2, 3]
numbers.append(4) # [1, 2, 3, 4]
numbers.remove(2) # [1, 3, 4]
9. 딕셔너리에서 같은 키를 여러 번 사용할 수 있나요?
딕셔너리에서는 키가 고유해야 합니다. 즉, 같은 키를 여러 번 사용할 수 없습니다. 만약 동일한 키로 값을 할당하게 되면, 기존의 값이 덮어쓰기 됩니다.
person = {"name": "Alice", "age": 25}
person["age"] = 30 # 키 "age"의 값이 25에서 30으로 변경됨
10. 파이썬에서 리스트를 복사할 때 주의할 점은 무엇인가요?
리스트를 복사할 때 주의할 점은 얕은 복사와 깊은 복사입니다. 단순히 = 연산자를 사용하면 리스트의 참조만 복사되므로 원본 리스트가 변경되면 복사본도 함께 변경됩니다. 이를 방지하려면 리스트의 슬라이싱([:])을 사용하거나, copy() 메소드를 사용해 복사해야 합니다. copy.deepcopy() 함수는 중첩된 리스트까지 모두 복사합니다.
import copy
original = [1, 2, [3, 4]]
shallow_copy = original[:] # 얕은 복사
deep_copy = copy.deepcopy(original) # 깊은 복사
original[2][0] = 99
print(shallow_copy) # [1, 2, [99, 4]]
print(deep_copy) # [1, 2, [3, 4]]
11. 파이썬에서 숫자 데이터를 문자열로 변환할 수 있나요?
네, 숫자 데이터를 문자열로 변환하려면 str() 함수를 사용합니다. 반대로 문자열을 숫자로 변환하려면 int() 또는 float()를 사용할 수 있습니다.
number = 10
text = str(number) # 숫자 10을 문자열 "10"으로 변환
print(text) # "10"
12. 딕셔너리 안에 리스트를 저장할 수 있나요?
네, 딕셔너리의 값으로 리스트를 저장할 수 있습니다. 딕셔너리의 키-값 쌍에서 값 부분에 리스트를 넣어 여러 데이터를 그룹화할 수 있습니다.
grades = {
"Alice": [90, 85, 82],
"Bob": [88, 79, 92]
}
print(grades["Alice"]) # [90, 85, 82]
13. 리스트를 정렬하려면 어떻게 해야 하나요?
리스트를 오름차순 또는 내림차순으로 정렬하려면 sort() 메소드나 sorted() 함수를 사용할 수 있습니다. sort()는 리스트 자체를 변경하며, sorted()는 정렬된 새로운 리스트를 반환합니다.
numbers = [3, 1, 4, 1, 5]
numbers.sort() # 원본 리스트를 오름차순으로 정렬
print(numbers) # [1, 1, 3, 4, 5]
desc_numbers = sorted(numbers, reverse=True) # 내림차순 정렬된 새로운 리스트 반환
print(desc_numbers) # [5, 4, 3, 1, 1]
14. 문자열에서 특정 문자가 몇 번 등장했는지 세려면 어떻게 하나요?
문자열에서 특정 문자가 몇 번 등장했는지 세려면 .count() 메소드를 사용합니다. 이 메소드는 문자열 내에서 특정 문자나 부분 문자열의 등장 횟수를 반환합니다.
sentence = "hello world"
count_l = sentence.count("l")
print(count_l) # 3 ('l'이 3번 등장)
15. 딕셔너리에서 키가 존재하는지 확인하려면 어떻게 하나요?
딕셔너리에서 특정 키가 존재하는지 확인하려면 in 키워드를 사용합니다. 이 키워드를 사용해 딕셔너리에 해당 키가 있는지 여부를 True 또는 False로 반환받을 수 있습니다.
person = {"name": "Alice", "age": 25}
if "name" in person:
print("이름이 존재합니다.") # 출력: 이름이 존재합니다.
파이썬의 데이터 타입은 프로그램의 기초를 이루며, 이를 잘 이해하는 것이 중요합니다. 숫자, 문자열, 리스트, 딕셔너리는 각각 특정한 상황에서 유용하게 사용되며, 이러한 자료형을 잘 활용하면 효율적인 코드 작성이 가능합니다. 숫자는 기본적인 계산과 데이터 연산에 사용되며, 문자열은 텍스트 데이터 처리에 필수적입니다. 리스트는 여러 데이터를 순서대로 관리할 때, 딕셔너리는 키-값 구조로 데이터 매핑이 필요할 때 사용됩니다.
이제 여러분도 파이썬의 다양한 데이터 타입을 활용하여 프로그래밍에 한 걸음 더 가까워질 수 있습니다. 연습을 통해 각 데이터 타입의 특성을 잘 이해하고, 다양한 상황에서 적절하게 활용해 보세요.
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
파이썬(Python) 객체지향 프로그래밍: 클래스와 객체의 기본 (+QnA) (3) | 2024.11.20 |
---|---|
파이썬(Python) 제어문: 조건문과 반복문으로 흐름 제어하기 (+QnA) (1) | 2024.11.20 |
파이썬(Python): 시작하기 - 초보자를 위한 가이드 (+QnA) (0) | 2024.11.19 |
파이썬(Python) 전역변수, 지역 변수: 완벽 가이드 (+코드) (1) | 2024.10.16 |
파이썬(Python) 조건 제어문: while 반복문 (5) | 2024.10.15 |