int, float, complexstrboollist, tuple, rangeset, frozensetdictbytes, bytearray, memoryviewNoneTypetype() 함수를 이용하여 데이터타입을 확인할 수 있다.
정수형 int는 소수점이 없는 양수, 음수 또는 0이 될 수 있는 숫자.
파이썬에서는 int의 길이의 제한이 없음. 내부적으로 'Long'타입으로 처리되며, 사용가능한 메모리의 양에 의해서 제한됨. 매우 큰 수를 사용할 경우 프로그램의 성능에 영향을 줄 수 있음.
x = 1
print(type(x))
<calss 'int'>
실수형 float(float point number)은 소수점를 가진 양수 또는 음수.
float은 int와 다르게 길이 제한이 있음. 약 10의 308승 정도의 최대값을 가짐. 숫자가 너무 크거나 작은 경우, 파이썬은 inf나 0으로 처리하거나, 'OverflowError'나 'UnderflowError'를 발생시킬 수 있다.
x = 3.14
print(type(x))
<class 'float'>
Complex는 실수와 허수의 합으로 표현되는 수.
허수는 실수의 제곱이 -1인 수로, 보통 수학에서는 i로 표현되지만 파이썬에서는 j로 표현됨.
x = 2+3j
print(type(x))
<class 'complex'>
파이썬에서 문자열은 작은따옴표, 큰따옴표로 나타낸다.
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개의 따옴표와 헷갈릴 수 있으니 참고.
참/거짓(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
List : Odrderd, Changeable, Allow Duplicates
Typle : Ordered, Unchangeable, Allow Duplicates
Set : Unordered, Unchangeable, No Duplicates
Dictionary : Ordered, Changeable, No Duplicates
한 변수에 여러 itmes를 저장할 수 있는 데이터타입. 다양한 데이터타입을 포함할 수 있으며, list도 포함할 수 있어 list의 중첩이 가능함.
list = ["apple", "banana", "cherry"]
print(type(list))
<class 'list'>
Ordered : List는 여러 값을 순서대로 저장하는데 사용되며, 저장된 각 값은 고유한 위치(인덱스)를 가짐. 첫번째 요소는 [0]으로 시작.
Changeable : List는 요소가 추가되거나 제거될때 자동으로 크기가 조정됨.
Allow Duplicates : 인덱스되어있기때문에 중복된 값을 넣을 수 있음.
한 변수에 여러 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'>
한 변수에 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}
한 변수에 여러 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은 같은 값으로 인식됨.
frozenset은 set과 유사하지만, 한번 생성된 후에는 변경할 수 없다.
frozenset = frozenset([1, 2, 3])
print(type(frozenset))
<class 'frozenset'>