728x90
Data Types
개요
변수의 종류
그 변수에 사용하는 연산과 동작 등을 결정하는 속성
데이터 타입 분류
- Numeric Data : int, float, complex
- Text Sequence : str
- Sequence : list, tuple, range
- Non-Sequence : set, dict
- Boolean, None, Function, .....
데이터 타입을 공부해야 하는 이유
- 변수에 저장된 데이터 타입을 어떻게 처리해야 하는지 구분할 수 있음
- 데이터 타입을 통한 유효성 검사를 할 수 있음
- 명확한 타입을 통한 가독성 및 유지보수성을 향상시킬 수 있음
- 특정 연산에 최적화된 특정 데이터 타입들을 공부하고, 성능을 최적화 할 수 있음
Numeric Data
1. int : 정수 자료형
숫자를 그냥 할당하면 정수형이 된다.
data01 = 1
data02 = 5
data03 = 10
print(data01) # 1
print(data02) # 5
print(data03) # 10
변수를 type()으로 감싸면 type을 확인할 수 있다.
print(type(data01)) # <class 'int'>
print(type(data02)) # <class 'int'>
print(type(data03)) # <class 'int'>
정수를 여러 진수로 표현할 수 있다.
- 2진수(binary) : 0b
- 8진수(octal) : 0o
- 16진수(hexadecimal) : 0x
print(0b11) # 3
print(0o32) # 26
print(0x2e) # 46
2. float : 실수 자료형
- 유한 정밀도 : float은 메모리에 저장할 수 있는 값으로 저장하기 때문에 근사값을 저장한다.
- 4/3 - 1 과 1/3 이 동일하지 않다.
print(14/13) # 1.0769230769230769
print(1/13) # 0.07692307692307693
print(14/13 - 1 == 1/13) # False
print(2/5) # 0.4
지수 표현
a = 1000
b = 1e3
print(a) # 1000
print(b) # 1000.0
print(a == b) # True
print(type(a), type(b)) # <class 'int'> <class 'float'>
Sequence Types
특징
- 순서 : 데이터가 삽입된 순서가 유지된다.
- 인덱싱 : 각 요소는 0부터 시작하는 고유한 인덱스를 가진다.
- 슬라이싱 : 시퀀스의 부분을 잘라내어 새로운 시퀀스를 만들 수 있다.
- 길이 : len() 함수를 사용하여 시퀀스의 길이를 알 수 있다.
- 반복 : for 루프를 사용하여 시퀀스의 각 요소를 반복할 수 있다.
1. 문자열 (str)
- 문자들의 시퀀스로 이루어진 데이터 타입
- 불변(immutable) : 문자열의 각 문자는 변경할 수 없다.
string = "Hello, World!"
print(string[0]) # 'H'
print(string[-1]) # '!'
print(string[7:12]) # 'World'
print(len(string)) # 13
for char in string:
print(char)
2. 리스트 (list)
- 다양한 데이터 타입의 요소를 포함할 수 있는 가변(mutable) 시퀀스
- 대괄호([])를 사용하여 생성
my_list = [1, "two", 3.0, [4, 5]]
print(my_list[1]) # 'two'
print(my_list[-1]) # [4, 5]
print(my_list[1:3]) # ["two", 3.0]
print(len(my_list)) # 4
for item in my_list:
print(item)
my_list[1] = 2
print(my_list) # [1, 2, 3.0, [4, 5]]
3. 튜플 (tuple)
- 불변(immutable) 시퀀스
- 소괄호(())를 사용하여 생성
my_tuple = (1, "two", 3.0)
print(my_tuple[1]) # 'two'
print(my_tuple[-1]) # 3.0
print(my_tuple[1:3]) # ("two", 3.0)
print(len(my_tuple)) # 3
for item in my_tuple:
print(item)
4. range
- 정수 시퀀스를 생성하는 타입
- 주로 for 루프에서 반복 횟수를 제어하기 위해 사용
for i in range(5):
print(i) # 0, 1, 2, 3, 4
print(list(range(2, 10, 2))) # [2, 4, 6, 8]
Non-Sequence Types
1. 딕셔너리 (dict)
- 키-값 쌍의 모음
- 중괄호({})를 사용하여 생성
- 키는 불변 타입만 가능하고, 값은 모든 타입이 가능
my_dict = {"name": "Alice", "age": 25, "location": "Wonderland"}
print(my_dict["name"]) # 'Alice'
print(my_dict["age"]) # 25
my_dict["age"] = 26
print(my_dict) # {"name": "Alice", "age": 26, "location": "Wonderland"}
for key, value in my_dict.items():
print(key, value)
2. 세트 (set)
- 중복되지 않는 요소들의 모음
- 중괄호({})를 사용하여 생성, 순서가 없음
my_set = {1, 2, 3, 4, 4, 5}
print(my_set) # {1, 2, 3, 4, 5}
my_set.add(6)
print(my_set) # {1, 2, 3, 4, 5, 6}
my_set.remove(2)
print(my_set) # {1, 3, 4, 5, 6}
for item in my_set:
print(item)
Other Types
1. Boolean (bool)
- True 또는 False 값을 가짐
a = True
b = False
print(a) # True
print(b) # False
print(type(a)) # <class 'bool'>
print(a and b) # False
print(a or b) # True
print(not a) # False
2. None
- 값이 없음을 나타내는 타입
n = None
print(n) # None
print(type(n)) # <class 'NoneType'>
3. Function
- 코드를 캡슐화하여 재사용 가능한 블록으로 만드는 타입
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # "Hello, Alice!"
print(type(greet)) # <class 'function'>
반응형
'내가 만드는 개발자 교안 > Python' 카테고리의 다른 글
02. 04 파이썬 기초 04 - 자료구조 02 비시퀀스 데이터 구조(세트, 딕셔너리) (0) | 2024.07.27 |
---|---|
02. 03 파이썬 기초 03 - 자료구조 01 시퀀스 데이터 구조(문자열, 리스트) (0) | 2024.07.27 |
02. 01 파이썬 기초 01 - 파이썬 기본 구조 (0) | 2024.07.14 |
01. 03 파이썬 IDE 설치하기 02 / VSCode for macOS (0) | 2024.07.10 |