들어가며
파이썬에서 제공되는 자료형과 구조에 대해 알아보는 시간을 가집니다.
자료형의 종류
다음과 같이 파이썬의 자료형이 존재합니다.
숫자형(Numeric)
숫자형에는 크게 정수형, 실수, 복소수로 나뉩니다.
이러한 숫자형은 다양한 산술 연산, 다양한 연산을 수행합니다.
정수(Integer)
양수, 음수, 혹은 0이 될 수 있는 소수점 없는 수입니다.
ex) 5, 15, 0, -1
실수(Float)
소수점을 포함하는 수입니다. e지수로 나타낼 수 있습니다.
정수부가 0인 실수는 0을 생략할 수 있습니다. ex) 0.1 -> .1
소수점의 허용범위와 오버플로우 처리는 Python의 구현체(Cpthon, Jython 등등)에 따라 다릅니다.
ex) 0.1, 3.14, 123e2
복소수(Complex)
실수부와 허수부가 존재하는 수입니다. 허수 부분에는 j로 표현합니다.
complex 함수를 사용하여 복소수를 생성할 수 있습니다. ex) complex(3, 4)
ex) 3 + 4j
불리언(Boolean)
참(True) 또는 거짓(False) 두 가지 값을 가지고 있는 자료형입니다.
프로그램의 흐름을 제어할 때 많이 활용됩니다.
x = True
y = False
#조건 연산
x = 1
y = 2
result = x < y #결과는 True
문자열(String)
문자열은 단어, 문장과 같은 일련의 순차적인 텍스트 데이터를 나타냅니다.
문자열은 작은 따옴표( ' )와 큰 따옴표( " )로 감싸서 표현합니다.
ex) "Hello", 'World'
집합(Set)
집합은 중복된 값이 없는 유일한 값들이 모여있는 구조의 자료형입니다.
집합은 순서가 없는 데이터 구조이므로 인덱스로 접근할 수 없습니다.
집합은 기본적인 연산(추가,삭제,검색) 말고도 다양한 연산 (교집합,합집합,차집합 등등) 메서드를 지원하고있습니다.
#집합 생성
animals = {'tiger', 'monkey', 'dog'}
#값 확인
print('tiger' in animals) # True
print('snake' in animals) # False
#교집합
set1.intersection(set2)
#합집합
set1.union(set2)
#차집합
set1 ^ set2)
딕셔너리(Dictionary)
딕셔너리는 Key - Value 쌍으로 구성된 구조의 자료형입니다. Key는 값을 식별하는 역할을 가지며
주어진 키를 이용하여 해당하는 값을 사용할 수 있습니다. 키 값은 유일해야 합니다.
딕셔너리는 순서를 보장하지 않습니다.
#딕셔너리 생성
human = {'name': 'Kim', 'age': 30, 'gender': 'male'}
#값 가져오기
name = human['name'] # 'Kim'
#키가 있는지 확인
print('age' in human) #True
리스트(List)
리스트는 관련있는 다수의 데이터를 저장하는데 사용됩니다. 리스트는 집합과 다르게 순서를보장하고 고유한 위치(인덱스)를 가지고있습니다. 리스트에 포함된 데이터를 요소(element)라고 합니다. 요소들은 동일한 자료형일 수도 있고 아닐 수도 있습니다.
리스트는 후술할 튜플과 다르게 요소의 변경이 가능한 자료형입니다. 리스트는 대괄호( [] )를 사용하여 생성합니다.
#리스트 생성
animals = ['tiger', 'dog', 'lion']
#요소 가져오기
animal = animals[0] #'tiger'
튜플(Tuple)
튜플은 리스트와 비슷하지만 요소를 변경할 수 없는(불변) 특징이 있습니다. 튜플은 소괄호( () )를 사용하여 생성합니다.
#튜플 생성
animals = ('tiger', 'dog', 'lion')
#요소 가져오기
animal = animals[0] # 'tiger'
가변객체와 불변객체(Mutable, Immutable)
자료형들 중 객체 생성 후 값을 변경할 수 있는 객체(가변객체)가 있고 그렇지 않은 객체(불변객체)가 존재합니다.
가변객체는 Numeric(int, float, complex), String, Tuple 이 존재하고
불변객체는 List, Set, Dictionary, ByteArray 가 존재합니다.
'프로그래밍 > Python' 카테고리의 다른 글
[Django] AttributeError: 'User' object has no attribute 'has_module_perms' 에러 (0) | 2024.07.12 |
---|---|
[Python] mysql client 설치 에러 (subprocess-exited-with-error..) (0) | 2024.07.10 |
[Python] 파이썬(Python)의 특징과 장단점을 알아보자 (0) | 2024.07.08 |