변수
- 값을 저장하기 위한 공간 --> 파이썬의 다양한 자료형&연산자 특징
변수명 = 값 (숫자, 문자, 여러개, 개체 등등)
변수선언 : 항상 왼쪽에 문자로 선언 -> 대입연산자(=)를 통해 값(숫자,문자,객체 등)을 할당한다.
--> 서로 다른 객체들을 서로 "Link 연결" 하는 것 (할당이 아니다)
//변수명으로 사용할 수 없는 예약어들이 존재
변수에 값 할당 with 연산자
파이썬만의 특징 중 하나 : 멀티 할당
정렬이라는 알고리즘의 가장 핵심적인 기능 : swap
자료형
1) 내가 1개의 값을 대상
---> 값의 종류 :
숫자 (정수,실수, 더 다른 숫자형..)
문자 (1개: 영어, 한글, 특수 -....)
논리값 : True/:False, 0/1
2) 내가 여러개의 값을 대상
---> 리스트 : [값,값,값,...] : 파이썬의 가장 대표적인 자료형
수정이 가능함!!(추가, 제거, 등등)
튜플 : (값,값,값,...) : 한 번 만들면 변경 불가능!!
---> set : {값,값,값,...} : 중복된 값을 1개로 처리!!
: 유니크한 값들에 체크!!
: 유니크값 체크 코드를 작성 안해도 자료형만 잘 변형해도 됨
---> dict : {키:값, 키:값, 키:값 ,...}
- 코드가 간결
- 원하는 값을 찾는데 빠르다!!
연산자
=,+,-,*,/,//(몫),%(나머지),**(제곱)
- 최적화를 위해 몫과 나머지를 잘 사용하자
- 규칙화를 하는 것이 중요하다
divmod() 함수 - 몫과 나머지를 출력해주는 함수
입력 : 무엇을 무엇으로 나눌지에 대한 정보(기준수,나눌 수) //튜플인 이유 : Immutable !!
기능 : 나눗셈을 해서, 몫, 나머지를 던져줌
출력 : 입력에 대한 몫, 나머지
- 몫 : divmod(a,b)[0]
- 나머지 : divmod(a,b)[1]
참고) 파이썬의 멀티 할당
q, m = divmod(a,b)
print(q,m)
리스트[List]
1) 기본 구조 : [값,값,값,...]
2) 기본 기능 : 값을 추가 (append, insert)
--> append : 값을 맨 뒤에 추가!!
--> insert : 중간에 끼어들기!! (어디에, 무엇)
: 값을 제거 (pop, remove)
--> pop : 위치 중심으로 제거!! (기본 : 맨 뒤)
--> remove : 값을 중심으로 제거!!
(중복된 여러개 값이 있을 때, 그 중에서 맨 앞의 1개만 제거)
3) 값을 접근한는 방식 : 정수 인덱스(1개) [순방향, 역방향]
여러개 규칙 : 슬라이싱!!
여러개 규칙이 없을 때 : 우회 방법
스택(Stack) / 큐(Queue)
스택(Stack)
- 후입선출(LIFO, Last In First Out) 구조 : 가장 마지막에 저장된 데이터가 가장 먼저 삭제
- 한쪽 방향에서만 데이터의 삽입과 삭제가 가능
- 스택 용어 :
top(peek) : 가장 최근에 저장된 데이터이자 먼저 삭제 될 데이터
push : 데이터를 삽입 (삭제시 가장 먼저 삭제됨)
pop : 데이터를 삭제할 때 사용
- 자료구조 : 삽입과 삭제시에 O(1), 탐색시 O(n)의 시간복잡도를 가짐
큐(Queue)
- 선입선출(FIFO, First In First Out) 구조 : 한쪽에서는 데이터 삽입, 다른 한쪽에서는 데이터의 삭제만 가능
- 큐 용어 :
Enqueue : 데이터 삽입
Dequeue : 데이터 삭제
Front : Dequeue시 삭제되는 데이터
Rear : 추가될 새로운 요소의 위치
- 자료구조 : 삽입과 삭제시에 O(1), 탐색시 O(n)의 시간복잡도를 가짐
정수 인덱스 vs 슬라이싱
정수 인덱스
값(Value)의 위치 정보 :
순방향 : 0, 양의 정수
역방향 : 음의 정수 -1, -2
- 하나의 값을 가지고 온다!
슬라이싱
슬라이싱에 대한 룰 : 정수인덱스 자리에서 사용!!
--> 시작점 : 끝점(빠짐!!) : 간격
==> 여러개의 값들을 규칙적으로 접근할 때 사용
- 여러개의 값을 가지고 온다!
참고 1) 슬라이싱을 활용해서 자기 자신을 표현
a_list[::]
2) 순서를 뒤집어서 맨 뒤를 맨 앞으로 불러오려면
a_list[::-1]
3) 여러개인데... 규칙 없이 그냥 나열하는 것은 어떨까?
a_list[[1,3,4]] <-- ERROR!!
----> numpy 패키지의 array 자료형 : 이건 된다!
튜플(Tuple)
1) 기본 구조 : (값,값,값,...)
2) 기본 기능:
추가, 제거의 변경에 대한 기능이 없음!
값에 대한 접근 !!
- 리스트와 아주 유사
==> 조작이 불가능하다!(추가, 제거 X)
==> 그 외의 값에 대한 접근/ 처리 등은 리스트와 동일하다!
*** 자료형들에 대한 특징을 정확하게 인지를 하고
필요에 따라서 왔따 갔다 하자
//리스트/튜플 개별 값에 대한 접근 : 몇 번째 --> 정수 인덱스 [위치정수]
0/양수 : forward
음수 : backward
: 여러개 & 규칙 --> 슬라이싱 [시작점 : 끝점 : 간격]
문자/ 문자열
1개 : 문자
여러개 : 문자열
파이썬에 사용하는 표기 양식 : " ", ' ', """ """, ''' '''
// for 문 가능!!
Q) 왜 굳이 이렇게 다양하게 있을까??
A) 구별자가 문자열 구별자와 진짜를 구별하기 위해서!
다양한 상황에 편하게 사용하기 위해서 다양하게 세팅한다. 문장부호와 구별하자!
//파이썬의 문자열 구분자와 문장부호와 충돌할 수 있으니 주의하자
집합{Set} / 딕셔너리{Dict}
집합{Set}
1) 기본 구조 : {값,값,값,...} ==> 수학적인 집합으로 동작!
2) 기본 기능 :
코테에서는 간단하게 유니크한 값들 처리할 때!!
위치 인덱스로 접근 X ==> 형을 변환을 해서 사용을 해야함
딕셔너리{Dict}
1) 기본 구조 : {값1:값1, 값2:값2, 값3:값3} => 키,값
2) 기본 기능 :
중복을 제거를 한
핵심 : key
값에 대한 접근 : [키값]
.keys(), .values()
dict.items() : k/v를 한 번에 분리해서 사용가능함! (멀티 할당)
참고 : 리스트 --> enumerate(리스트) : 정수인덱스, 값
'ASAC 빅데이터 분석가 7기 > Python' 카테고리의 다른 글
데이터 분석을 위한 파이썬 공부 - 반복문(for), 제어문(if) (0) | 2024.12.10 |
---|