<Python 언어>
파이썬은 쉽고 직관적인 문법(사람 친화적), 강력한 라이브러리(이미 만들어진 코드 꾸러미) 지원
특징 1. 쉬운 문법과 가독성
2. 플랫폼 독립성(운영체제 상관X)
3. 인터프리터 언어: 코드를 한 줄 씩 독립적으로 실행
파이썬의 장단점 : 실행 속도가 느리지만, 배우기 쉽다.
주석(#): 코드 실행에 영향을 미치지 않는 설명 (가독성↑, 유지보수↑)
Ipynb : 인터넷 파이썬 노트북
Markdown cell : 코드가 없는 셀
셀 실행 = shift + enter
Input() 을 사용하면 입력한 값은 무조건 문자열로 저장
형변환 1.정수형(integer) : int()
2.실수형(float) : float()
3.문자열(string) : str()
f-string : 변수와 문자열을 왔다 갔다 하면 복잡하니까 사용. 쉼표 띄어쓰기도 고려해야 하고
여러 줄 주석 : “””~~~“”” or ‘’’~~~’’’
“~”자체를 출력하려면 작은 따옴표or큰 따옴표로 감싸기
print 함수
1. sep 옵션을 사용하여 구분자 설정 가능 (기본값은 띄어쓰기)
2. end 옵션을 사용하면 출력 후 기본적으로 줄바꿈(\n)이 발생하는 것을 변경 가능
3. 프린트 특수 문자 \이용 3가지( \n \t \\ )
Input() 은 무조건 문자열로 인식. 따라서 숫자들은 변환 필요함
<변수와 기본 자료형>
변수(variable) : 이름이 붙은 데이터를 저장하는 공간. 동적 타이핑(마지막 변수 지정을 따름)
Python에서는 변수 선언 시 자료형을 따로 지정할 필요가 없음.
Type() : 자료 형태를 확인하는 함수
변수명 작성 규칙
- 영문자, 숫자 언더스코어(_)만 사용 가능
- 변수명의 첫 글자는 숫자가 될 수 없다.
- 대소문자가 다르면 다른 변수, 띄어쓰기 불가능
_변수명 = "무시하는 값" #값을 무시할 때 사용
변수명 스타일 가이드
- 여러 단어로 이루어진 변수명은 소문자+언더스코어 활용
- 변수명은 의미를 확실히 알 수 있게
- 한 글자 변수명은 피하기
- 상수(변하지 않는 값)는 변수명을 대문자로만 작성
연산자
- 기본 연산: 사칙연산( + - * / ), 몫( // ), 나머지( % ), 거듭제곱( ** )
n 나누기를 하면 결과는 무조건 실수
- 논리 연산자: and(둘 다 트루), or(한쪽이라도 트루), not(논리를 반대로 바꿈)
n A=True, B=False 는 자동적으로 논리 자료형 (따옴표X, 앞글자 대문자)
- 관계 연산자: > < <= >= ==(같다) !=(같지않다)
Python의 기본 자료형
- 숫자형(Numeric Type): 정수형, 실수형
n 정수형과 실수형을 계산하면 무조건 실수형이 된다(영원히)
n 정수를 정수로 나누면 무조건 실수(나누기는 무조건 실수가 되니까)
- 문자열(String): 무조건 따옴표를 사용해야 함, 시퀀스 자료형
n 작은 거 큰 거 상관X, 문자 안에 쓸 때는 눈치껏 다르게
n 문자열 연산은 더하기(+)와 곱하기(*)만 가능
u + : 문자열 연결 , * : 문자열 반복
- 리스트(List): 여러 개의 값을 하나의 변수에 저장할 수 있는 자료형
n [ ] 대괄호를 사용하여 리스트를 생성, 순서 존재
u 구간 슬라이싱(이상:미만:단계) , 인덱싱[숫자]
둘 다 생략 가능
n 숫자형/문자열 혼합 가능, 시퀀스 자료형(맨 앞부터 0 1 2~ 또는 맨 뒤부터 -1 -2 -3~)
n 문자열처럼 연결과 반복 연산 사용 가능
n 리스트 인덱싱과 슬라이싱
u 리스트명[N] : 해당 리스트의 N-1번째 요소
u 리스트명[-1] : 해당 리스트의 가장 마지막 요소
u 리스트명[N:M:간격] : 해당 리스트의 N번부터 M-1번 값을 분리
l N 또는 M 생략시 맨 처음부터or맨 끝까지
n 리스트 원소를 변경할 수 있다.
u 주요 메서드(특정 자료형에서만 작동 ex.리스트) # .을 추가하고 써야함
l append : 리스트의 끝에 원소 추가
l pop : 리스트의 마지막 원소 제거하여 할당
l split : 구분자 기준 문자열을 분리하여 리스트로 할당
- 튜플(Tuple): 여러 개의 값을 하나의 변수에 저장할 수 있는 자료형
n 리스트와 다르게 값 변경이 불가능 (메모리 사용량에 이점)
n 순서가 있으며 중복된 값을 가질 수 있음
n 괄호가 없어도 튜플로 인식됨, 원소가 하나일 때는 뒤에 쉼표(,)를 반드시 붙일 것.
n ()를 사용하거나 tuple([ ]) 함수를 이용, 괄호 없이 ,만 해도 됨
- 딕셔너리(Dictionary): 키(key)와 값(value)의 쌍으로 이루어진 자료형
n 순서 없이 키를 사용하여 값을 저장하고 조회 가능
n 중복된 키 설정 불가, 변경(수정, 추가, 삭제) 가능
n { : }(중괄호) 또는 dict( ) 함수를 사용하여 생성 가능
u keys() : 모든 키 가져오기
u values() : 모든 값 가져오기
u items() : 모든 키-값 쌍 가져오기
u pop(key) : 해당 키 값 제거 후 반환
u get(key) : 해당 키의 값 반환
u pop(key) : 해당 키 값을 제거하고 반환
n get() 메서드를 사용하면 키가 존재하지 않을 때 오류를 방지 가능
n 수정 가능, 삭제도 가능( del 이름[ ] )
- 집합(Set): 중복을 허용하지 않는 자료형
n 순서가 없으며 중복된 값 자동 제거(인덱스, 슬라이싱 불가능)
n 집합연산(합집합, 교집합, 차집합) 가능
u 합집합( | ) ex. A | B
u 교집합( & ) ex. A & B
u 차집합( - ) ex. A - B
n { }(중괄호) 또는 set([ ]) 함수를 사용하여 생성
<조건문 (If문)>
조건문: 상황에 따라, 특정 조건에 따라 다른 동작을 하도록 하는 것. 대답이 참과 거짓으로 구분할 수 있는 것.
- If 조건:
elif 조건2:
else: (생략가능)
- If 나 elif 조건에 합당하면 밑에 남은 elif 과 else는 실행되지 않음.
<반복문>
- while문 : 반복 횟수가 정해지지 않은 경우. 조건이 참인 경우 계속 반복
n while 조건식:
n 무한루프를 종료하기 위해서는 ctrl + c 또는 break문을 사용
u break문은 위치 상관없이 모든 반복문을 즉시 빠져나옴
n while문은 조건식에서 비교해야 하므로 while문 전에 변수를 미리 정의해줘야 함.
- for문 : 반복 횟수가 정해져 있거나 범위가 정해진 경우 → 보통 시퀀스 자료형과 사용
n for 변수 in 시퀀스자료:
n 변수 미리 정의할 필요 없음
range(N:M) : 범위 설정. N부터 M-1까지
<함수와 클래스>
함수: 특정 작업을 수행하는 코드 블록, 필요할 때마다 호출하여 실행할 수 있는 독립적 단위.
- 내장 함수
1. 숫자 연산 함수 : 절대값 abs(), 최대값 max(), 최소값 min(), 반올림 round(), 총합 sum()
2. 데이터 변환 함수 : 정수 int(), 실수 float(), 문자열 str(), 리스트 list(), 튜플 tuple()
3. 입출력 함수 : 출력 print(), 입력 input()
4. 자료 정보 함수 : 길이 len(), 자료형 type(), 메모리주소값 id()
5. 논리 및 조건 함수 : 참/거짓 bool(), 모든 요소가 참 all(), 하나라도 참 any()
6. 정렬 및 순회 함수 : 정렬 sorted(), 순회 enumerate(), 여러 iterable 객체 동시 순회 zip()
7. 정렬 및 순회 함수 : 정렬 sorted(), 순회 enumerate(), 여러 iterable 객체 동시 순회 zip()
- 사용자 지정 함수(def 함수)
n def 함수이름(매개변수1, 매개변수2, ... , 매개변수N):
실행 할 코드
return 반환값
클래스(Class): 파이썬에서 클래스는 객체(object)를 만들기 위한(객체화) 틀 설계도
즉, 클래스는 객체를 만들기 위한 설계도이며, 클래스를 사용하면 비슷한 특징을 가진 객체를 쉽게 만들고 관리할 수 있다.
- class 클래스이름: #init은 재료 준비와 같다
def__init__(self, 매개변수1, 매개변수2) #self는 함수가 이 class꺼라는 의미
self.변수1=매개변수1
self.변수2=매개변수2
def 메서드이름(self) # class에서만 쓸 수있으므로 메서드
n def__~~는 클래스를 선언해야만 사용 가능하므로(self.) 모두 메서드이다.
익명함수 (Lambda)
이름이 없는 간단한 함수를 만들 때 사용하는 기능.
- 주로 단순한 연산 수행 함수 만들 때 사용
- def 키워드와 달리 한 줄로 간단하게 함수를 만드는 것이 가능
- lambda 매개변수1, 매개변수2, --- : 표현식
파일처리
- open()함수를 사용하여 파일을 읽고 쓸 수 있음
- 반복문을 활용하면 여러 줄을 처리할 때 저 효율적
- 데이터 분석에서는 CSV와 같은 형식의 파일을 다루는 것이 중요함
- 파일을 활용하려면 데이터를 저장, 로드, 분석하는 다양한 작업을 수행할 수 있음