[Python] Data Types

Poke·2024년 3월 29일
post-thumbnail

Python의 데이터타입

  • Numeric Types : int, float, complex
  • Text Type : str
  • Boolean Type : bool
  • Sequence Types : list, tuple, range
  • Set Types : set, frozenset
  • Mapping Type : dict
  • Binary Types : bytes, bytearray, memoryview
  • None Type : NoneType

type() 함수를 이용하여 데이터타입을 확인할 수 있다.

1. Numeric Types

int 정수

정수형 int는 소수점이 없는 양수, 음수 또는 0이 될 수 있는 숫자.
파이썬에서는 int의 길이의 제한이 없음. 내부적으로 'Long'타입으로 처리되며, 사용가능한 메모리의 양에 의해서 제한됨. 매우 큰 수를 사용할 경우 프로그램의 성능에 영향을 줄 수 있음.

x = 1
print(type(x))
<calss 'int'>

자세한 Int는 링크 참고

float 부동소수점

실수형 float(float point number)은 소수점를 가진 양수 또는 음수.
float은 int와 다르게 길이 제한이 있음. 약 10의 308승 정도의 최대값을 가짐. 숫자가 너무 크거나 작은 경우, 파이썬은 inf나 0으로 처리하거나, 'OverflowError'나 'UnderflowError'를 발생시킬 수 있다.

x = 3.14
print(type(x))
<class 'float'>

자세한 Float은 링크 참고

Complex 복소수

Complex는 실수와 허수의 합으로 표현되는 수.
허수는 실수의 제곱이 -1인 수로, 보통 수학에서는 i로 표현되지만 파이썬에서는 j로 표현됨.

x = 2+3j
print(type(x))
<class 'complex'>

2. Text Type

Str 문자열

파이썬에서 문자열은 작은따옴표, 큰따옴표로 나타낸다.

x = 'Hello World!'
print(type(x))
<class 'str'>

주의) 문자열의 시작과 끝은 같은 따옴표여야함. 다를 경우 에러발생!

x = 'Hello World!"
print(type(x))
SyntaxError: EOL while scanning string literal

여러줄의 문자열을 나타내고 싶다면 3개의 따옴표로 시작하고 종료해주면 된다.

x = """I think,
therefore I am.
- René Descartes"""
print(x)
I think,
therefore I am.
- René Descartes

주석을 나타내는 3개의 따옴표와 헷갈릴 수 있으니 참고.

자세한 Str은 링크 참고

3. Boolean Type

bool 불

참/거짓(True/False)을 나타내는 자료형.

x = True
print(type(x))
<class 'bool'>

주의) 대분자로 시작하는 True와 False는 불 자료형이지만, 소문자로 시작하는 true와 false는 불 자료형이 아님.

x = true
print(x)
NameError: name 'true' is not defined
True = 1
print(True)
SyntaxError: cannot assign to True

Python의 Collections(Arrays)

List : Odrderd, Changeable, Allow Duplicates
Typle : Ordered, Unchangeable, Allow Duplicates
Set : Unordered, Unchangeable, No Duplicates
Dictionary : Ordered, Changeable, No Duplicates

4. Sequence Types

List

한 변수에 여러 itmes를 저장할 수 있는 데이터타입. 다양한 데이터타입을 포함할 수 있으며, list도 포함할 수 있어 list의 중첩이 가능함.

list = ["apple", "banana", "cherry"]
print(type(list))
<class 'list'>

Ordered : List는 여러 값을 순서대로 저장하는데 사용되며, 저장된 각 값은 고유한 위치(인덱스)를 가짐. 첫번째 요소는 [0]으로 시작.
Changeable : List는 요소가 추가되거나 제거될때 자동으로 크기가 조정됨.
Allow Duplicates : 인덱스되어있기때문에 중복된 값을 넣을 수 있음.

자세한 List는 링크 참고

Tuple

한 변수에 여러 items를 저장할 수 있는 데이터타입. 다양한 데이터타입을 포함할 수 있으며, tuple도 포함할 수 있어 tuple의 중첩이 가능함.

tuple = ("apple", "banana", "cherry", "apple", "cherry")
tuple_2 = "apple", "banana", "cherry", "apple", "cherry" # 소괄호를 생략해도 됨.
print(type(tuple))
print(type(tuple_2))
<class 'tuple'>
<class 'tuple'>

Ordered : Tuple은 순서는 있지만 바뀔수는 없음. 주로 변경되지 않는 데이터의 시퀀스를 저장하는 데 사용 ex) 함수에서 여러 값을 반환할 때
Unchangeable : Tuple의 요소들은 변경, 추가, 삭제될 수 없음.
Allow duplicates : 순서가 유지되기때문에 중복된 값을 넣을 수 있음.

주의) 한 요소만을 가지고 있는 튜플의 경우 요소 끝에 ','를 붙여야함.

tuple = ("apple")
print(type(tuple))
<class 'str'>
tuple = ("apple",)
print(type(tuple))
<class 'tuple'>

자세한 Tuple은 링크 참고

5.Mapping Type

Dictionary

한 변수에 key:value쌍의 여러 items를 저장할 수 있는 데이터타입(사전과 같이 단어와 뜻이 한 쌍으로 있는 자료형). 각 items의 value값은 key를 이용해 참조할 수 있음. 다양한 데이터타입을 포함할 수 있으며, dictionaries 포함할 수 있어 dictionary의 중첩이 가능함. Dictionary의 key는 변경 불가능한 데이터만 사용할 수 있다. 예를 들어, 문자열, 숫자, 튜플은 키로 사용할 수 있으나, 리스트나 딕셔너리는 키로 사용할 수 없음.

dict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(type(dict))
<class 'dict'>

Ordered : 파이썬 3.7부터는 순서를 저장함. 순서가 중요한 경우에는 'OrderedDict'를 사용하자.
Changeable : 변경, 추가, 삭제될 수 있음
No Duplicates : 모든 키는 고유하며, 중복된 키를 사용하면 마지막 할당된 값으로 overwrite됨.

dict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964,
  "year": 2020
}
print(dict)
{'brand': 'Ford', 'model': 'Mustang', 'year': 2020}

자세한 Dictionary는 링크 참고

6. Set Types

Set

한 변수에 여러 items를 할당할 수 있는 집합자료형. 집합연산(합집합, 교집합, 차집합 등)을 수행할 수 있음. 주로 중복된 요소를 제거하거나, 공통 요소나 차이점을 찾을 때 유용함.

set = {"apple", "banana", "cherry"}
print(type(set))
<class 'set'>

주의) x = {}는 빈 딕셔너리를 생성함.

Unordered : 정의된 순서가 없어 인덱스나 키로 참조할 수 없음.
Unchangeable : set이 생성되면 요소를 변경할 수는 없지만, 요소를 제거하거나 추가할 수 있음.
No Duplicates : 중복된 값은 무시됨.

set = {True, 1, 0, False}
print(set)
{0, True} # True와 1, Flase와 0은 같은 값으로 인식됨.

자세한 Set은 링크 참고

Frozenset

frozenset은 set과 유사하지만, 한번 생성된 후에는 변경할 수 없다.

frozenset = frozenset([1, 2, 3])
print(type(frozenset))
<class 'frozenset'>

0개의 댓글