INDEX
1. 파이썬 기초
(0) 변수 이름을 작성하는 규칙
(1) 자료형
(2) 연산자 : 산술연산자, 논리연산자
(3) 데이터 형
(4) 리스트(list)
(5) 튜플(tuple)
(6) 딕셔너리(dictionary)
(7) 제어문 : if, for, while
(8) 추가
1. 파이썬 기초
- 파이썬이 만든 기본 자료형
- 제어문, 반복문 → 함수
- 더 심화해서는 클래스
(0) 변수이름을 작성하는 규칙
- 일반적인 변수명, 함수명 : 대소문자가 가능하지만, 주로 소문자 사용
- 부연설명은 underbar(_) 사용
- 파이썬이 이미 제공하는 이름들은 사용하지 말기 : (예: print, if, for, etc.)
참고) 대문자 시작+뒤에는 소문자 : 클래스 (예: class Car)
- 수학에서 사용하는 변수 생각하면 됨 (예: x = 10)
- 변수명은 왼쪽에 ('10 = x' 처럼은 기입 안됨) 할당(Link) 할 때
- 변수명 = 연결할 대상(기타 등등)
(1) 변수이름을 작성하는 규칙
1) 1개 값을 나타내는 자료형
- 숫자: 정수, 실수, 부호 등
- 논리값: True/False
- 문자: "a", "가"
2) 여러개의 값을 나타내는 자료형
- 리스트: [값, 값, 값, ... ] -> 추가, 제거 등 변형
- 주어진 상황을 1개의 변수로 표현 가능
- 튜플 : (값, 값, 값, ...) -> 1번 생성하면 조작 불가
- 집합set : {값, 값, 값, ...} -> (쓸일이 거의 없긴 함) -> 수학적인 집합
- {1, 1, 1, 1, 2 }의 수학적인 집합 = {1,2} - 중복제거
- 데이터분석이나 프로젝트에서는 거의 안씀
- 코테를 할 때에는 얘를 굳이 안쓰지만 쓰면 편할 때가 있음.
- Dict 미니데이터베이스 : { 키1:값1, 키2:값2, ...}
- 데이터분석에서는 가끔 or 적당히 사용을 함. 사용빈도가 있는 편
- 코테에서 얘를 잘 사용하는게 필요 - 값에 대한 접근이 매우 빠르기 때문
- 왜 Dict는 빠른가? 자료구조/알고리즘
- 알고리즘의 시간의 복잡도
- 예) 리스트에 원소가 n개 있다면, 0(n)만큼 시간이 걸린다면
- Dict에 원소가 n개 있다면, 0(1)만큼 걸림
- 내부에서 HashTable이라는 알고리즘/자료구조
- 문자열 "hello"
# 예1) 우리반 3명 친구 A, B, C가 있음
# 수학시험 점수가 각각 80, 70, 85
a = 80
b = 70
c = 85
# 리스트 예)
scores = [10, 11, 12, ... , 99 ]
# 딕셔너리 예4)
scores = { "A":80, "B":70, "C":85, ... }
(2) 연산자
1) 산술 연산자
+, -, *, 나눗셈은 주의 / , //
- / : 그냥 일반 나눗셈
- // : 몫 계산
- % : 나머지 계산
- 제곱근 2**3 = 2의 3승
2) 논리 연술자
- and or 등
- 조건1 and 조건2
- 조건1 or 조건2 - True/False
(3) 데이터 형
1) 대상에 따라서 각기 다르게 동작을 함
- 숫자형: 1 + 2 = 3
- 문자형: "a" + "b" = 'ab'
( 주의사항: 대상이 뭐냐 확인해야함. )
- 리스트: [1,2,3]+[4,5,6] = [1,2,3,4,5,6]
- 혼합: [1,2,3] + 'hello' => type에러
2) 명확하게 형을 지정하고 싶을 때 : casting
- 1 : 1
- str(1) : '1'
- 1 + str(2) : type에러 발생
3) 내가 나온 결과의 형태를 바꿔서 사용할 수 있음! ( 구글링 참조 )
- int, str, float, datetime 등
- list, tuple, set 등
(4) 리스트
1) 기본 형태 : [값, 값, 값, ...]
2) 기본 기능
- 값을 추가하는 부분: append, insert append는 맨 뒤 추가, insert는 위치 지정 추가
- 값을 제거하는 부분: pop, remove pop은 위치기준 제거, remove는 값 중심 제거
- 슬라이싱 : 리스트[시작: 끝: 간격]
- insert: a_list.insert(4, 'hi')
- pop: a_list.pop(0)
- remove: 값 중심으로 제거
- 중복된 값에서는 remove 잘 활용
3) 그 외 기능
번외) append, pop : 파이썬의 리스트를 대표적인 자료구조인 stack, queue로 활용 탐색 알고리즘 DFS, BFS
(5) Tuple
- 리스트와 거의 흡사
- 여러개의 값들을 다룬 자료형
- 차이점: 한 번 하면 변경 못함
- 예) a_tuple = (1,2,3,4,"hello",5,4,6)
(6) Dict
- 값들을 모아둔 것
- 미니데이터 베이스, 값에 대한 접근할 수 있는 고유값 : key
- 예) d1 = {원소1(k1:v1), 원소2(k2:v2), ...}
- 특징
- 원소가 아무리 많아도 키값으로 개별 원소를 접근하면 빠르게 접근 가능
- 이론적으로는 HashTable
- 코테에서도 잘 활용해야하는 자료형 중 하나 : d1.keys()[0] -> 100퍼센트 리스트는 아님
- 파이썬은 dict가 뭔가 포장은 함
- 자기 스타일로 여러개의 키값들을 포장해둠
(7) 제어문
1) if문
- 기본적으로 분할의 개념 : 겹치지 않게 전체를 나눠야 함. 조건이 명확하도록
- else: pass 도 사용
2) for문 & while문
- 데이터 처리시는 for를 많이 쓰지만, 코테에서 탐색(DFS, BFS 등)은 while 사용
- for문을 사용하기 위해선 하고자 하는 일에 대한 규칙화가 필요함
(8) 추가
- 딕셔너리의 키/값을 모두 출력하기 위해선 d.items() 메서드 사용 : 튜플로 출력
- 리스트에서는 정수 인덱스 / 값으로 출력위해 enumerate()파이썬 함수 사용
- 예) for i in enumerate(d_list) :
- 파이썬만의 특징: 다중 할당
- 파이썬에서는 a, b = b, a 식의 할당이 가능하다.
'ASAC 빅데이터전문가과정 > Python' 카테고리의 다른 글
ASAC 14일차 _ 파이썬(Python) Numpy/Pandas 1일차 (0) | 2024.03.03 |
---|---|
ASAC 9일차 _ 파이썬(Python) 5일차 (0) | 2024.03.02 |
ASAC 8일차 _ 파이썬(Python) 4일차 (0) | 2024.01.24 |
ASAC 7일차 _ 파이썬(Python) 3일차 (0) | 2024.01.18 |
ASAC 4일차 _ 파이썬(Python) 2일차 (0) | 2023.12.06 |