목록파이썬 (4)
Joonas' Note
최근에 회사에서 간단하게 파이썬으로 스크립트를 작성하다가 데이터베이스를 사용해야할 일이 있었다. 간단한 목적이라 단순한 연산들만 있으면 되는데, 불필요하게 거대한 사이즈의 패키지들(SQLAlchemy, PyMongo 등)을 설치해야하는 게 불편했다. 왜냐하면 경험상 이것들은 초기에 별도로 설정해야하는 작업이 굉장히 많기 때문이다. 그래서 in-memory 여도 좋으니 간단한 설정으로 마치 json 객체처럼 사용할 수 있는 패키지가 있는 지 찾아보았는데, 이 당시에는 찾지 못했다. 개발을 꽤 마친 이후에 tinyDB 라는 아주 비슷한 동작의 패키지를 발견했다. (지금와서 보면 dict 호환성 측면에서 아주 미묘하게 다르다.) 그럼 패키지를 사용하지 않고 built-in 패키지인 json 으로 커버하자니, ..
개요 아나콘다(Anaconda)는 파이썬의 버전과 패키지들의 버전을 쉽게 관리할 수 있게 해주는 강력한 솔루션이다. 하지만 200명 이상 규모의 회사에서는 개인용 버전인 Anaconda Distribution을 사용할 수 없다고 한다. 그리고 어떤 패키지들은 아나콘다에서 추적하지 못할 수도 있다. 파이썬의 버전과 각 프로젝트에 맞는 가상환경을 쉽게 구축하고 관리하는 것을 아나콘다의 기능이라고 보고, 이번 글에서는 아나콘다를 사용하지 않고 classic하게 관리하는 환경을 구축한다. 먼저, 크게 세 가지로 나눠서 접근해보자. 파이썬 버전 관리 패키지 관리 가상 환경 관리 파이썬 버전 관리 파이썬은 특정 패키지들이 버전을 지원하지 않으면 버전을 내려야하는 경우들이 종종 있다. 예를 들면 Python 3.7 ..
우연히 발견해서 오랜만에 적어보는 코딩으로 풀어보기 게시글이다. 이번에는 코드 없이 풀어본 풀이도 있다. 문제 문제는 간단하다. 1부터 9까지의 숫자를 한 번씩만 사용해서, 수식이 올바르도록 비어있는 9개의 칸을 채우는 문제이다. 코딩 풀이 숫자를 한 번씩만 사용한다는 조건때문에, 전체 경우의 수를 탐색하면 \(9! = 362,880\)개 밖에 안된다. 그래서 모든 경우를 전탐색해도 여유롭게 풀만하다. 답을 찾는 데 10ms도 안 걸릴 것 같다. 코드 import itertools numbers = [i for i in range(1, 10)] count = 0 for p in itertools.permutations(numbers): a1, a2, a3 = p[:3] a4 = p[3] * 10 + p[..