숫자형
- int: 정수 값
a = 10
b = -29
result = a + b
print(result)
-19
- float: 부동소수점 값
a = 0.0
b = -10.29
result = a - b
print(result)
10.29
- complex: 복소수
a = 1 + 2j
b = 3 - 4j
result = a * b
print(result)
(11+2j)
복소수의 허수 부분을 나타낼 때 i가 아닌 j를 사용한 이유는 파이썬에서 i는 주로 반복문에서 인덱스 변수로 많이 사용하기 때문에 혹시 모를 혼동을 줄이기 위함이다.
시퀀스 자료형
- str: 문자열
text = "Try Anything, Come True"
print(text[:12])
Try Anything
- list: 순서가 있고 변경 가능한 리스트
languages = ["Java", "JavaScript"]
languages.append("Python")
print(languages)
['Java', 'JavaScript', 'Python']
- tuple: 순서가 있지만 변경이 불가능한 튜플
coordinates = (37.53, 126.98)
print(coordinates[0])
37.53
프로그래밍 언어는 언어 간 일관성을 유지하기 위해 다양한 자료구조에 0부터 시작하는 zero-base 인덱싱을 사용한다.
집합형
- set: 순서가 없고 중복을 허용하지 않는 집합
unique_numbers = {1, 2, 3, 2, 1}
print(unique_numbers)
{1, 2, 3}
- frozenset: 변경이 불가능한 집합
immutable_set = frozenset([1, 2, 3, 2, 1])
print(immutable_set)
# use iteration instead of an index
for item in immutable_set:
print(item)
frozenset({1, 2, 3})
1
2
3
집합은 기본적으로 인덱싱이 불가능하지만, 단순히 집합의 요소를 순회하거나 특정 요소가 존재하는지 확인하는 건 방법이 존재한다.
매핑 자료형
- dict: 키와 값이 쌍으로 이루어진 변경 가능한 딕셔너리
person = {"name": "funczun", "age": 26}
person["age"] = 24
print(person["name"])
print(person)
funczun
{'name': 'funczun', 'age': 24}
키는 중복될 수 없으나, 값이 중복될 수는 있다.
불리언 자료형
- bool: 참 또는 거짓
is_valid = True
is_invalid = False
print(is_valid and is_invalid)
False
프로그래밍에서 and는 두 조건이 모두 참일 때 true를 반환한다.
넌 자료형
- NoneType: 값이 없음
value = None
# use is instead of ==
if value is None:
print("Value is None")
Value is None
None을 비교할 때 ==을 사용하면 예상치 못한 결과가 나올 수 있으므로 is 연산자를 사용하는 것을 추천한다.
바이너리 자료형
- bytes: 변경이 불가능한 이진 데이터
byte_data = b'Hello'
b = bytes([65, 66, 67])
print(byte_data)
print(b)
b'Hello'
b'ABC'
- bytearray: 변경이 가능한 이진 데이터
b = bytearray([65, 66, 67])
b[0] = 66
print(b)
bytearray(b'BBC')
- memoryview: 타 바이너리 객체의 메모리 참조가 가능한 객체
b = bytearray(b'BBC')
mv = memoryview(b)
print(mv[:1])
<memory at 0x0000016B07F5C7C0>
byte를 str으로 변환하는 경우, str을 byte로 변환하는 데 사용한 인코딩 방식과 같은 방식으로 디코딩되어야 한다.
'Basics > For KR' 카테고리의 다른 글
시간복잡도 실전 이해: 문자열 결합 연산 쓰지 마! (0) | 2024.11.19 |
---|---|
파이썬의 연결리스트: 노드가 주소를 가리킨다고요? (0) | 2024.11.12 |
파이썬의 배열: 인덱스의 시작은 0인가, 1인가? (8) | 2024.11.05 |
프로그래밍에서 자료구조란? (3) | 2024.10.22 |