높은 생산성
코드의 간결함
java | python |
---|---|
빠른 개발 속도 : Python(3시간) >> C > Java > C++(11시간)
스크립트 언어 : 이미 존재하는 소프트웨어를 제어하기 위한 용도로 쓰는 언어
컴파일언어 | 스크립트언어(인터프리터언어) |
---|---|
실행시간 측정
import time
start = time.time() # 시작 시간 저장
a = 1
for i in range(100):
a += 1
print("time: ", time.time() -start) # 종료시간 - 시작시간 = 실행시간
enumerate() 와 이중 for문
리스트 컴프리헨션(list Comprehension) : 셋(Set), 딕셔너리(Dict)에도 적용 가능
my_list = ['a','b','c','d']
result_list = []
for i in range(2): => result_list = [(i, j) for i in range(2) for j in my_list]
for j in my_list: # 리스트 컴프리헨션
result_list.append((i, j))
print(result_list)
제너레이터(Generator)
😊 병렬처리 사용
import multiprocessiong if __name__ == '__main__' : 코드 시작 지점 지정 pool = multiprocessing.Pool(processes = 4) : 병렬 처리 시, 4개의 프로세스 사용 pool.map(count, num_list) : 병렬화를 시키는 함수 pool.close() : 병렬화 부분이 끝나면 나옴 pool.join() : 프로세스가 종료될 때까지 대기
함수의 장점 : 코드의 효율성, 코드의 재사용성, 개발시이 단축, 코드의 가독성
* pass
: 기타 제어 흐름 도구 ex)함수 내부, if 내부, while 내부 등에서 사용
람다 표현식(lambda expression) : 런타임에 생성해서 사용할 수 있는 익명 함수
기존 함수 정의 :
def add(x, y) : return x + y
람다 표현식 변환 =>print((lambda x, y: x + y)(10,20))
- x, y : 입력값
- x + y : 반환값( = return x + y)
- (10, 20) : x, y의 입력값(x = 10, y = 20)
pip install pandas
참고자료:
1. 객체지향 프로그래밍
2. 함수형 프로그래밍 HOWTO
Whitespace(여백)
한 줄 코드의 길이는 79자 이하
함수와 클래스는 다른 코드와 빈 줄 두 개로 구분
클래스 내 함수는 빈 줄 하나로 구분
변수 할당시 스페이스 하나만 사용
>ex) `x_=_1` (O), `x__=__1`(X)
- 리스트 인덱스, 함수 호출시 스페이스 사용 안함
ex)
my_list[0]
(O),my_list [0]
(X)
- 쉼표(,), 쌍점(:), 쌍반점(;) 앞에서는 스페이스를 사용하지 않음
>ex) `my_list[0:1]` (O), `my_list[0 : 1]` (X)
이름 규칙
네이밍 컨벤션 | 설명 |
---|---|
snake_case | - 모든 공백 => "_ " & 모든 단어 => 소문자로 변경 - 함수, 변수 등의 이름 지정시 사용 (in Python) 💜output ex) this_snake_case |
PascalCase | (= UpperCameslCase or CapWords) - 모든 단어의 첫글자 => 대문자로 시작 - 클래스의 이름 지정시 사용(in Python) 💜output ex) ThisPascalCase |
camelCase | (= lowerCamelCase) - 처음 소문자 & 이후 모든 단어의 첫글자 => 대문자 - 주로 java에서 사용(not use Python) 💜output ex) thisCamelCse |
참고자료
1. 코드스타일
2. PEP 8 — Python 코드 용 스타일 가이드
아는 듯 모르는 듯한 개념 정리가 많네😂 참고자료들을 시간날때 보면서 정의들을 알아가야 겠다.