일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 클래스
- 딕셔너리
- 카카오
- Set
- 딥러닝
- 코딩도장
- 함수
- 스크랩
- AIFFEL
- Python
- 파이썬코딩도장
- numpy
- 자연어처리
- 머신러닝
- 데이터사이언스 스쿨
- 제어문
- AI
- 아이펠
- 기사
- 사이킷런
- 제로베이스 데이터사이언스
- 데이터사이언티스트
- 데이터분석
- 파이썬
- 재귀함수
- TensorFlow
- NLP
- 추천시스템
- 속성
- 후기
- Today
- Total
뮤트 개발일지
AIFFEL 아이펠 4일차 본문
enumerate(): 리스트, 문자열, 튜플 등이 있는 경우 순서와 리스트의 값을 함께 반환
아래 코드에서는 list 안에 있는 순번이 i에, 값은 value에 저장되어 코드를 진행한다.
for i, value in enumerate(list):
이중 for문: for문 안에 또 for문을 넣어 작성한 코드. 저작권 문제로 아이펠 노드가 아닌, 내가 만든 이중 for문을 아래 적어놓는다.
for y in range(10):
for x in range(10-y):
print(' ', end = '')
print('*' * (y * 2 - 1))
그럼 예쁜 트리가 짜잔! (코딩하면서 이런 아기자기한 거 만드는 게 재밌더라.. 연습문제 귀여운 걸로 내줘여)
리스트 컴프리헨션 list comprehension: 리스트, 셋, 딕셔너리와 같은 순회형 컨테이너에서 가공한 새로운 리스트를 생성하는 방법
제너레이터 generator: yield 키워드를 사용한다. yield는 순서를 밖으로 양보한다. 데이터의 양이 많을 때 데이터를 전부 메모리에 올려놓고 처리해야할 데이터를 한 개씩 로드해서 사용할 수 있기 때문에 머신러닝에서 많이 사용된다.
Try-Except: 예외 처리 방법. tyr 다음에 정상적으로 작동했을 때의 코드를 쓰고, except 뒤에는 에러가 발생했을 때 동작할 코드를 쓴다.
멀티프로세싱 Multiprocessing: 병렬처리(parallel processing)를 이용하여 컴퓨터가 작업하는 속도를 향상시킨다.
* if __name__ == '__main__' : 코드 시작점을 표시하는 명령어. __name__에 __main__(임포트한 모듈 이름)이 할당되어 모듈에서 제공하는 함수 등을 사용할 수 있게 된다.
pool = mulitprocessing.Pool(processes = 프로세스 개수): 병렬처리 시, 입력한 프로세스만큼 사용하도록 한다.
pool.map(함수명, 리스트): 병렬화 시키는 함수. 함수에 리스트 원소들을 하나씩 넣는다.
예) count('p1'), count('p2'), count('p') 생성된다.
pool.close(): 병렬화 끝에 나온다. 더이상 새로운 작업을 추가하지 않을 때 사용한다.
pool.join(): 프로세스가 종료될 때까지 대기하도록 지시하는 구문
함수를 사용하면 좋은 점: 코드의 효율성, 코드의 재사용성, 코드의 가독성이 향상된다.
pass: 함수 내부 구현은 나중에 하려 할 때 사용한다. 아무일도 일어나지 않는다.
함수 연달아 사용하기
def say_something(txt):
return txt
def send(function, count):
for i in range(count):
print(function)
send(say_something("안녕!"), 2)
===>
안녕!
안녕!
함수 안에 함수, 2개 이상 return 하기
list_data = [30, 20, 30, 40]
def minmax_function(x_list):
def inner_min_function(x):
length = len(x)
min_result = x[0]
for i in range(length):
if min_result > x[i]:
min_result = x[i]
return min_result
def inner_max_function(x):
length = len(x)
max_result = x[0]
for i in range(length):
if max_result < x[i]:
max_result = x[i]
return max_result
x_min = inner_min_function(x_list)
x_max = inner_max_function(x_list)
minmax_list = [x_min, x_max]
return minmax_list
print("최솟값, 최댓값은 : ", minmax_function(list_data))
print("최솟값은 : ", minmax_function(list_data)[0])
print("최댓값은 : ", minmax_function(list_data)[1])
* 함수 안에서의 함수는 함수 내부에서만 사용할 수 있다.
람다 표현식 lambda expression: 익명함수
def add(x, y): return x + y
클래스 class: 비슷한 역할을 하는 함수들의 집합
모듈 module: 함수, 변수, 클래스를 모아놓은 파일
패키지 package: 여러 모듈을 모아놓은 폴더
- 패키지 설치방법: 'pip install 패키지 명'으로 설치
절차 지향 프로그래밍: 순차적으로 프로그래밍하는 방법
객체 지향 프로그래밍: 프로그램을 상호작용하는 객체들의 집합으로 보게 하는 것
함수형 프로그래밍: 함수로 문제를 분해한다. 이 함수들은 입력을 받아 출력을 만들어 내기만 한다. 주어진 입력이 값을 생성하면 이 출력값은 함수 외부의 다른 변수나 함수에 의해 변하지 않는다.
- (특징1) 순수성
예)
def pure_mul(a, b):
return a * b
print(pure_mul(4, 6))
===> 24
- (특징2) 모듈성: 작은 함수들로 쪼갠다. 가독성이 좋아지고 오류를 확인하기 쉬워진다.
- (특징3) 디버깅과 테스트 용이성: 각각의 함수가 작고 명확하기 때문에 디버깅을 쉽게 할 수 있다. 또한 올바른 입력을 함수에 입력하고 결과가 예상과 일치하는지 확인만하면 되기 때문에 테스트가 쉽다.
pep8
- 한 줄의 코드 길이는 79자 이하여야 한다.
- 함수와 클래스는 다른 코드와 빈 줄 두 개로 구분한다.
- 클래스에서 함수는 빈 줄 하나로 구분한다.
- 변수 할당에서 스페이스 하나만 사용한다.
- 리스트 인덱스, 함수 호출에는 스페이스를 사용하지 않는다.
- 쉼표, 쌍점, 쌍반점 앞에는 스페이스를 사용하지 않는다.
- 변수명 앞에 _(밑줄)이 붙으면 함수 등의 내부에서만 사용되는 변수이다.
- 변수명 뒤에 _(밑줄)이 붙으면 라이브러리나 파이썬 기본 키워드와 충돌을 피할 때 사용한다.
- 함수명은 소문자로 쓴다.
- 상수는 모듈 단위에서만 정의하고 모든 단어는 대문자, 필요하면 밑줄로 나눈다.
snake_case: 모든 공백은 _로 바꾸고 모든 단어는 소문자이다. 함수, 변수 등을 명명할 때 사용한다.
PascalCase: 모든 단어는 대문자로 시작하고 클래스를 명명할 때 사용한다.
파이썬 코딩 도장
Unit 22. 리스트와 튜플 이용하기
Unit 23. 2차원 리스트 이용하기
Unit 25. 딕셔너리 응용하기
Unit 26. 세트 사용하기
파이썬 코딩 도장 정리는 다른 카테고리에 따로 정리하였음!
'AIFFEL' 카테고리의 다른 글
AIFFEL 아이펠 파이썬으로 코딩 시작하기 (0) | 2022.01.03 |
---|---|
AIFFEL 아이펠 5일차 (0) | 2021.12.31 |
AIFFEL 아이펠 3일차 (0) | 2021.12.29 |
AIFFEL 아이펠 2일차 배운 것 정리 및 느낀 점 (0) | 2021.12.28 |
AIFFEL 아이펠 첫 날 OT 후기 및 각오 (0) | 2021.12.27 |