1. 학습 내용 & 활용 분야
파이썬 설치, 출력/변수, 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 조건문(Conditional), 반복문(Loop), 함수(Function), 클래스(Class), 유용한 문법.
- 데이터 분석 핵심: NumPy, Pandas 라이브러리 사용법.
- NumPy : 빠르고 효율적인 다차원 배열 처리 (속도)
- Pandas : 데이터프레임(DataFrame) 및 시리즈(Series) 자료구조 제공 (excel, csv 등 파일 처리)
- 활용 분야: 데이터 전처리, 계산, 관리, 시각화, AI 모델링(일련의 과정으로 정리된 데이터를 머신러닝, 딥러닝에 구축 및 학습)
2. 출력문 & 변수와 데이터 타입 (Variables & Data Types)
출력문: print() 함수.
- 활용: sep, end 등 옵션 활용하여 출력 형식 제어.
print('A', 'B', sep='-') → 'A-B', print('Hi', end='!') → 'Hi!'
# sep =
변수와 데이터 타입: 값을 저장하는 공간. 할당 연산자 (=)로 값 할당
- 자료형: 정수(Integer), 실수(Float), 문자열(String), 리스트, 튜플, 딕셔너리, 집합(Set).
변수 종류: 문자열, 숫자형 (정수/실수), 불리언(Boolean), None (결측값).
- 중요: 가변 객체 (Mutable) vs 불변 객체 (Immutable) 구별 중요.
3. 리스트, 튜플, 딕셔너리 (Collections)
용도: 데이터 담기, 정리, 추출. 전처리, 가공, 결과 저장.
my_list = [10, 20]; print(my_list[0])→10
print(my_list[0:2]) → [10, 20]
3.1 리스트 (List)
특징: 여러 항목을 담는 가변(Mutable) 시퀀스.
data = [1, 'two', 3.0]
- 메서드:
- append() : 항목 추가 data.append(4)
- insert() : 특정 위치 삽입 data.insert(1, 'new')
- extend() : 리스트 병합
- remove() : 특정 값 삭제
- pop() : 특정 위치 제거 후 반환
- del 키워드 : 항목 삭제 del data[0]
- index() : 첫 번째 위치 반환
- count() : 특정 값 개수
- sort() : 제자리 정렬
- sorted() : 새 리스트 반환 (정렬)
3.2 튜플 (Tuple)
특징: 변경 불가(Immutable) 시퀀스. 리스트와 유사.
- 활용: 경량이며 함수 인자 전달 시 안정성 확보.
- 변환: list()로 list 변환, tuple()로 tuple 변환.
3.3 딕셔너리 (Dictionary)
특징: 키(Key)-값(Value) 쌍 저장. 키는 고유하며 불변 객체만 사용 가능.
person = {'name': 'Gemini', 'age': 3}
- 메서드:
- keys() : 키 목록 (View 객체)
- values() : 값 목록 (View 객체)
- items() : 쌍 목록 (View 객체)
- get(키, 기본값) : 값 반환, 키 부재 시 기본값 반환
- pop(키) : 제거 및 값 반환
- popitem() : 마지막 키-값 쌍 제거 및 반환
4. 조건문과 반복문 (Control Flow)
용도: 특정 조건에 따른 가공, 반복 수행 (데이터 분석, ML 반복 학습).
4.1 조건문 (Conditional Statement)
키워드: if, elif, else 사용.
- 규칙: 들여쓰기 (Indentation) 필수로 코드 블록 지정.
- 연산자: and, or, not 연산자 사용 가능.
x =10
if x > 5:
print("크다")
elif x == 5:
print("같다")
else:
print("작다")
4.2 반복문 (Loop)
For: 반복 가능한 데이터 타입 순회. range() 함수 사용.
- 활용: for 문에 else 블록 사용 가능 (break 없이 완료 시 실행).
# range() 함수: 0부터 4까지
for i in range(5):
print(i)
# List 순회
for item in ['A', 'B']:
print(item)
While: 조건을 만족하는 동안 코드 반복 실행.
- 제어문:
- break : 반복 중단 if i == 3: break
- continue : 현재 반복 건너뛰기 if i % 2 == 0: continue
- pass : 코드를 비워 오류 방지
5. 파이썬 함수 (Function)
- 정의: def 키워드로 정의. 입력 처리 후 return 키워드로 결과 반환.
- 목적: 코드 재사용, 모듈화, 가독성 향상.
# 함수 호출
def add(a, b):
return a + b
print(add(5,3))
전역 변수 (Global): 프로그램 전체 접근. global 사용 시 함수 내 값 변경 가능.
# 100 출력
g_var = 1
def change_var():
global g_var
g_var = 100
change_var()
print(g_var)
지역 변수 (Local): 특정 함수/범위 내에서만 접근
인자 (Arguments):
- 매개변수 (Parameter) : 정의 시 사용.
- 인수 (Argument) : 호출 시 전달 값.
- 가변 인수 (Arbitrary Arguments):
- *args (튜플) : 위치 인수를 여러개 받을 때
- **kwargs (딕셔너리) : 키워드 인수를 여러개 받을 때
6. 유용한 문법 & 모듈 (Modules)
- 패키지/라이브러리: 관련 모듈 묶음. import 키워드로 사용 선언.
- 포맷팅 (Formatting): f-string (f"...") 문법으로 간결한 문자열 포맷팅.
name = 'AI'
print(f"Hello, {name}!")
- 리스트 컴프리헨션 (List Comprehension): 반복문/조건문으로 리스트 간결하게 생성.
squares = [i*i for i in range(1, 5)] → [1, 4, 9, 16]
- 람다 (Lambda): lambda 키워드로 정의되는 익명 함수. 한 줄의 간단한 표현식만 포함.
- 용도: 간결성, 고차 함수 (Higher-Order Function)에 유용.
square = lambda x: x * x; print(square(4))→16
- Glob: 파일명 패턴 매칭 (와일드카드 *, ? 사용) 검색 도구.
- Os: 파일/디렉토리, 환경 변수 관리. os.path로 경로 조작.
- Split/Join:
- .split() : 문자열을 분할 (구분자 기준).
- .join() : 리스트 항목들을 특정 구분자로 결합.
7. 클래스 (Class)와 OOP
- 클래스: 객체 (Object) 생성을 위한 설계도.
- 구성: 속성(Attribute) : 인스턴스의 상태 (데이터), 메서드(Method) : 클래스 내 정의된 함수 (행위).
- 초기화: __init__() 메서드로 객체 생성 시 초기화.
class Dog:
def __init__(self, name): # 초기화 메서드 (생성자)
self.name = name # 속성 정의
def bark(self): # 메서드
print(f"{self.name} 멍멍!")
my_dog = Dog("초코") # 인스턴스 생성
my_dog.bark() # 메서드 호출
- OOP 특징:
- 다형성 (Polymorphism): 같은 메서드명이 다른 클래스에서 다른 기능 수행.
8. 고급 개념 및 에러 (Advanced & Errors)
- 불리안 인덱싱 (Boolean Indexing): 조건 (참/거짓)에 따라 배열/리스트의 요소를 선택하는 방법.
- 데코레이터 (Decorator): @ 기호 사용. 함수/메서드를 랩핑하여 추가 기능 부여 (기존 코드 수정 없이).
- 실행 모드:
- 즉시 실행 모드 (Eager Execution): 순차적 실행, 즉시 결과 평가.
- 그래프 모드 (Graph Execution): 코드를 그래프로 변환 후 실행, 최적화/병렬 처리.
- 주요 에러:
- SyntaxError : 구문 오류
- IndentationError : 들여쓰기 오류
- NameError : 정의되지 않은 이름 사용
- TypeError : 호환되지 않는 타입 연산
- IndexError : 시퀀스 범위 초과
- KeyError : 딕셔너리에 없는 키 접근
- ValueError : 값은 유효하나 내용이 부적절
댓글 영역