정수형
-> 양의 정수, 음의 정수, 0
실수형
-> 소수 / 소수부나 정수부가 0인 경우 생략가능
개발 과정에서 실수 값을 제대로 비교하지 못해서 원하는 결과를 얻지 못할 수 있음
이럴 때는
round() 함수
ex) 소수 셋째 자리에서 반올림 round(123.456, 2) => 결과 : 123.46
수 자료형의 연산
-> 사칙연산, 나머지 연산자
구분 해야할 사항
나누기 연산자(/) : 나눠진 결과를 실수형으로 반환
나머지 연산자(%)
몫 연산자(//)
거듭 제곱 연산자(** )
-> 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
리스트 대신에 배열 혹은 테이블이라고 부르기도 한다.
리스트의 인덱싱과 슬라이싱
-> 인덱싱 : 인덱스 값을 입력하여 리스트의 특정한 원소에 접근하는 것
파이썬의 인덱스 값은 양의 정수와 음의 정수를 모두 사용할 수 있음
음의 정수를 넣으면 원소를 거꾸로 탐색하게 됨
-> 슬라이싱 : 리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때 사용
대괄호 안에 콜론(:)을 넣어서 시작 인덱스와 끝 인덱스를 설정할 수 있음
끝 인덱스는 실제 인덱스보다 1을 더 크게 설정함
-> 리스트 컴프리헨션 : 리스트를 초기화하는 방법 중 하나
대괄호 안에 조건문과 반복문을 적용하여 리스트를 초기화 가능
ex) array = [i for i in range(10)]
array2 = [i for i in range(20) if i % 2 == 1]
array3 = [i * i for i in range(1, 10)]
* 리스트 컴프리헨션은 2차원 리스트를 초기화할 때 효과적으로 사용 가능
ex) M X N 크기의 2차원 리스트 초기화
multi_d_array = [[0] * m for _ in range(n)]
-> 리스트 관련 기타 메서드
- append() : 변수명.append() : 원소 하나 삽입
- sort() : 변수명.sort() / 변수명.sort(reverse = True)
: 오름차순 정렬 / 내림차순 정렬- reverse() : 변수명.reverse() : 원소 순서를 모두 뒤집는다.
- insert() : insert(삽입할 위치 인덱스, 삽입할 값) : 특정한 인덱스 위치에 원소를 삽입할 때 사용한다.
- count() : 변수명.count(특정값) : 특정한 값을 가지는 데이터개수세기
- remove() : 변수명.remove(특정값) : 특정값 제거, 여러개면하나만제거
문자열
-> 큰 따옴표, 작은 따옴표 구분없이 사용
문자열 안에서 따옴표를 사용할 때는 백슬래쉬()사용
> data = "Don't you know \"Python"\?"
출력 : Don't you know "Python"?
-> 문자열 연산
문자열 변수에 덧셈(+)를 이용하면 문자열이 더해져서 연결이 됨
문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열이 그 값만큼 여러 번 더해짐
문자열에 대해서도 마찬가지로 인덱싱과 슬라이싱을 이용할 수 있음
단, 문자열은 특정 인덱스의 값을 변경할 수 없음 (immutable)
튜플을 사용하면 좋은 이유
서로 다른 성질의 데이터를 묶어서 관리해야 할 때
최단 경로 알고리즘에서는 (비용, 노드 번호)의 형태로 사용
데이터의 나열을 해싱의 키 값으로 사용해야 할 때
-> 튜플은 변경이 불가하여, 리스트와 다르게 키 값으로 사용 가능
리스트보다 메모리를 효율적으로 사용해야 할 때
딕셔너리
-> 키와 값의 쌍을 데이터로 가지는 자료형
튜플이나 리스트가 값을 순차적으로 저장하는 것과는 다름
쌍으로 데이터를 가지며, 원하는 변경불가능한 자료형을 키로 사용 가능
파이썬의 딕셔너리는 해시 테이블을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)시간에 처리할 수 있음
집합 자료형 set()
-> 중복 x, 순서 x
리스트 혹은 문자열을 이용하여 초기화할 수 있음 -> set() 함수 이용
중괄호 안에 각 원소를 콤마를 기준으로 구분하여 삽입하여 초기화
데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리 가능
집합 자료형의 연산
* 합집합 : A ∪ B
-> print(a | b)
- 교집합 : A ∩ B
-> print(a & b)- 차집합 : A - B
-> print(a - b)
집합 자료형 관련 함수
* 새로운 원소 추가
ex) data.add(4)
- 새로운 원소 여러 개 추가
data.update([5, 6])- 특정한 값을 갖는 원소 삭제
data.remove(3)
=> 딕셔너리와 집합 자료형의 특징
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있음
딕셔너리와 집합은 순서가 없어서 인덱싱으로 값을 얻을 수 없음
사전의 키와 혹은 집합의 원소를 이용하여 O(1)의 시간 복잡도로 조회합니다.