Basics/For KR

파이썬의 주요 자료형과 활용 예시

funczun 2024. 10. 29. 10:29
숫자형
  • 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>

 bytestr으로 변환하는 경우, strbyte로 변환하는 데 사용한 인코딩 방식과 같은 방식으로 디코딩되어야 한다.