반응형

Language/Python 6

[Python] 가상 환경에 대한 이해: pyenv, virtualenv, anaconda

파이썬은 다양한 편리한 패키지들을 지원한다. 특히 Data Science와 관련된 수많은 모듈들을 지원하는데, 이것들은 파이썬이 지금 세계에서 가장 인기 있는 언어 중 하나로 자리매김을 하는데에 큰 역할을 하였다. 하지만 대부분의 개발환경이 그렇듯, 파이썬에서도 사소한 모듈들의 버전 차이로 인해 에러가 발생하는 경우가 있다. 때문에 각 패키지들 간의 버전 간의 호환성을 유지하는 것은 매우 중요한 일이다. 하지만 매번 프로젝트를 진행할 때마다 root에 설치되어있는 다양한 파이썬 패키지들 버전을 새로 설치하고 변경한다면 매우 비효율적인 일이 될 것이다. 그래서 사용하게 되는 것이 바로 가상 환경이다. 가상 환경은 말 그대로 가상의 파이썬 공간이다. 즉, 분리되어진 가상의 공간에 프로젝트마다 필요한 파이썬 ..

Language/Python 2019.11.11 (3)

[Python] Dequeue 사용하기

큐는 어떤 자료구조인가? 큐는 자료의 선입선출, FIFO(First-In-First-Out)을 보장하는 자료구조이다. 흔히 줄을 서 있는 사람들을 생각하면 쉽게 이해할 수 있다. 먼저 줄을 선 사람이 먼저 줄에서 벗어나는 것과 같다. Reference https://www.youtube.com/watch?v=W3jNbNGyjMs deque 객체 deque는 스택과 큐를 합친 자료구조이다. 가장자리에 원소를 넣거나 뺄 수 있다. 메서드 설명 deque(iterable, [, maxlen]) 초기화 함수이다. iterable(리스트 등)을 인자로 건내면 이를 deque화 시켜준다. append(x) x를 덱의 오른쪽에 삽입한다. popleft() 덱의 가장 왼쪽에 있는 원소를 덱에서 제거하고, 그 값을 리턴..

Language/Python 2019.10.24

[Python] 메서드 지역변수로 할당으로 time complexity 줄이기

반복문 안에서 메서드를 호출할 때 그냥 호출하는 것보다, 반복문에 들어가기 전에 메서드를 미리 지역변수로 할당해놓고 반목 문에서 지역변수로 저장된 메서드를 호출하면 빠르게 동작한다. 위의 예제에선 list.pop을 했을 때보다 list_pop 변수에 list.pop 메서드를 저장 후 list_pop을 호출했더니 시간이 약 3/5까지 줄어들었습니다. 알고리즘이나 코드 플로우를 바꾸지 않고 시간을 줄일 필요가 있을 때 사용하면 좋을 것 같다. 저 위의 예시를 예로 들면, 첫번째 test_list.pop 하기 전에 print(locals())를 하면 pop 메서드가 지역변수에 없는 것을 알 수 있다. 그 말은 pop 메서드를 가져오려면 List 클래스의 pop 메서드가 담겨있는 메모리의 위치까지 접근해서 가져..

Language/Python 2019.10.11

[Python] Code convention

convention 이란? code convention이란 코드를 짤 때 어떻게 코드를 짤지 다수가 합의한 약속이다. code convention을 지키지 않는다고 해서 에러가 나는 것은 아니지만, 팀 프로젝트에서 통일된 코드는 읽기가 쉽고 유지보수 측면에서 뛰어나다. 아래는 code convention을 지킨 것과 지키지 않은 것들인데 모두 같은 결과 값을 출력한다. 변수를 만들 때에는 = 양옆으로 띄어쓰기를 하자 O : my_list = [] X : my_list=[] 상수는 대문자로 만들자 O: MY_CONSTANT = 300 X: myconstant = 300 주석을 쓸 때에는 # 뒤에 공백 문자를 하나 넣자 O: # 2를 곱한다 X: #2를 곱한다 코드로 개성을 드러내지 말자. conventio..

Language/Python 2019.10.10

[Python] Stack 사용하기

파이썬에서의 스택 = list를 사용 파이썬은 스택 자료구조는 따로 제공하지 않는다. 다만 기본 클래스인 list를 통해 스택을 흉내 낼 수 있다. 스택은 어떤 자료구조인가요? 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조이다. 구멍이 하나밖에 없는 병이라고 생각하면 이해하기 쉽다. Reference https://www.youtube.com/watch?v=whVUYv0Leg0 스택이 지원하는 operation 스택은 다음 operation을 지원해야 한다. Operation 구현 Time Complexity - Average Case Pop item my_list.pop O(1) Push item my_list.append O(1) Stack ..

Language/Python 2019.10.09

[Python] python으로 알고리즘을 공부해야 하는 이유

파이썬은 처음 배우기 좋은 언어로 많이들 추천하는 언어이다. 파이썬은 초보 프로그래머가 어려운 문법에 허우적거리게 만들지 않고 프로그래밍의 핵심적인 개념을 정말 쉽게 배울 수 있게 만드는 훌륭한 언어이다. 파이썬을 통해서 좋은 프로그래밍 스타일을 한번 배워두면 다른 언어를 습득하는 것이 무척 쉬울 뿐만 아니라 다른 언어로 만든 프로그램마저도 고급스러워지는 효과를 발휘하곤 한다. 파이썬은 컴퓨터 프로그래밍 교육을 위해 많이 사용하지만, 기업의 실무를 위해서도 많이 사용하는 언어이다. 그 대표적인 예가 바로 구글이다. 필자는 구글에서 만든 소프트웨어의 50% 이상이 파이썬으로 작성되었다는 이야기를 들었다. 이외에도 많이 알려진 예를 몇 가지 들자면 온라인 사진 공유 서비스 인스타그램(Instagram), 파..

Language/Python 2019.10.09 (2)
반응형