전체 글
-
파이썬 순열과 조합Python/파이썬 자료구조 알고리듬 2019. 8. 21. 06:49
표준 라이브러리 파이썬에서 순열과 조합을 사용하고 싶으면, itertools 표준 라이브러리를 사용하면 됩니다. 순열은 itertools.permutations, 조합은 itertools.combinations입니다. https://comdoc.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-from-itertools [파이썬] from itertools 파이썬의 이터툴즈 중 조합형 이터레이터에 대해 알아보겠습니다. 조합형 이터레이터는 다음 4가지가 있습니다. product(), permutations(), combinations(), combinations_with_replacement() 가장 익숙한 순열부.. comdoc.tistory.com from itertoo..
-
라즈베리파이에 Nginx + uWSGI + Flask 설치하기.Python/Flask 2019. 8. 18. 15:04
1. 라즈베리 파이에 raspbian 설치 다운로드 링크 : https://www.raspberrypi.org/downloads/raspbian/ 지금 현재 가장 최신 버전 2019-07-10 설치. 용량에 따라 3가지 버전이 있음. 데스크탑 환경이 편한 취미 개발자이며, 추천 소프트웨어까지는 필요 없을 듯 하여 Raspbian Buster with desktop 사용. 마이크로 SD 카드는 8기가 이용. rufus를 이용해 카드에 라이팅함. 2. 내장된 파이썬 버전 확인 pi@raspberrypi:~ $ python3 -V Python 3.7.3 최신 버전이라 업그레이드는 패스. 붙여넣기 단축키: ctrl + shift + v 3. pip 업그레이드 (필요 없음) pi@raspberrypi:~ $ su..
-
파이썬의 heapq 모듈Python/파이썬 자료구조 알고리듬 2019. 7. 22. 23:03
https://docs.python.org/ko/3.7/library/heapq.html 힙큐는 최솟값(또는 최댓값)을 계속 뽑아내야 할 때 사용할 수 있습니다. 한 번 정렬해 놓고 하나씩 뽑으면 되지 않냐? 맞습니다. 하지만 계속 새로운 값들이 추가된다면? 새로운 값들이 추가될 때마다 최솟값을 찾기 위해 원소를 전체를 검색해주거나 정렬을 해야 합니다. 느립니다. 이런 경우에 사용하는 것이 힙큐입니다. 힙큐는 리스트와 트리의 장점을 모두 사용합니다. 1. 트리 구조를 사용합니다. 요소 삽입 및 최솟값(또는 최댓값)의 제거 시 발생하는 요소의 검색 및 스왑의 회수가 일반적인 리스트를 사용할 때보다 현저히 작습니다. 2. 리스트를 사용합니다. 완전 이진트리는 리스트로 코딩할 수 있습니다. 리스트가 클래스보다..
-
파이썬으로 소수(prime) 찾기Python/파이썬 자료구조 알고리듬 2019. 7. 13. 14:16
1. 정의소수(素數, prime number)는 1과 자기 자신만을 약수로 가지는 1 이외의 정수입니다. 정의를 따라 코딩해 보면 다음과 같죠. def is_prime1(n): if n 2. 양의 제곱근 까지만 체크그런데 약수는 대칭적입니다. 약수의 개수가 짝수인 경우1*6 = 62*3 = 6 -------3*2 = 66*1 = 66을 예로 들자면 약수가 1 2 3 6 이렇게 4개이고 이 경우 2까지만 체크해도 소수인지 아닌지 알 수 있습니다.정확하게는 6의 양의 제곱근인 2.4494 까지만 체크하면 됩니다. 약수의 개수가 홀수인 경우1*4 = 42*2 = 4 4*1 = 4마찬가지로 4의 양의 제곱근인 2 '이하'까지 체크해야 합니다. '4 ** 0.5 = 2'이므로'4 ** 0.5 + 1 = 3..
-
7. Django: ORM-Method, __str__()Python/초간단 장고 Django 2019. 7. 8. 22:38
연재 중 꼭 설명해야 할 부분은 아니지만, 안 하기도 아쉬운 부분이 있어 정리해 보았습니다. Bookmark object (x) 이건 장고 어드민에서나 {{object_list}}에서 보이는 부분인데 보기 좋지 않습니다. 이 부분을 수정하려면 모델에 __str__() 메서드를 추가해야 합니다. # bookmarks/models.py from django.db import models class Bookmark(models.Model): title = models.CharField(max_length=40, blank=True, null=True) url = models.URLField('url', unique=True) def __str__(self): # 추가 return self.title 이제 데이..
-
6. Django: TemplatesPython/초간단 장고 Django 2019. 7. 8. 20:15
알 필요는 없지만 장고의 템플릿 엔진을 DTL(Django Template Language)이라고 합니다. 다른 템플릿 엔진도 사용이 가능하며, 템플릿 엔진에 관한 설정은 config/settings.py 에서 찾아볼 수 있습니다. 다른 템플릿 엔진을 사용하는 것을 추천하진 않더군요. 장고에서 클래스 뷰의 템플릿 폴더는 기본적으로 'app/templates/app'를 이용합니다. 'app/templates' 까지는 이해가 가는데 뒤에 'app'이 한번 더 나오는 이유가 궁금하실 겁니다. 다른 앱에 동일한 이름의 템플릿이 있는 경우 Django는 이들을 구분할 수 없습니다. 그래서 app이름으로 네임 스페이스를 만들어 둡니다. 하지만 앱이 하나 뿐이라면.. 작성한 템플릿이 자동 인식이 되지 않을 때(폴더를..
-
5. Django: ViewsPython/초간단 장고 Django 2019. 7. 8. 08:23
1. views.py 장고에서는 클래스형 뷰와 함수형 뷰가 있습니다. 이 글에서는 클래스형 뷰를 사용할 예정입니다. 클래스형 뷰는 미리 만들어진 프리셋을 상속받습니다. 장고에서는 이 프리셋을 제네릭 뷰라고 합니다. 제네릭 뷰의 종류는 다음 링크를 참고하십시오. ^^; https://wikidocs.net/9623 입력과 수정은 관리자 페이지에서 처리하기로 했기 때문에 'Generic Display View의 ListView'만 사용하면 됩니다. 조건에 맞는 객체들의 목록을 보여주는 뷰입니다. 다음 예제는 Bookmark 테이블(실제로는 클래스)을 읽은 뒤 'object_list' 변수에 담아 '모델명소문자_list.html' 템플릿에 넘겨줍니다. 'object_list' 와 '모델명소문자_list.htm..
-
4. Django: ModelsPython/초간단 장고 Django 2019. 7. 7. 10:43
ORM은 객체(O)와 관계형(R) 데이터베이스의 매핑(M) 이라고 했었습니다. 이번 시간에는 장고에서는 어떻게 둘을 연결하는 지 보겠습니다. ORM에서 '테이블'은 '클래스'로 정의합니다. '컬럼'은 '클래스 변수'로 정의합니다. 이게 ORM의 다는 아니고, 거의 다입니다. 생각보단 별 거 없습니다...(????) 그럼 클래스의 구성 요소는 변수와 메서드인데, 메서드는 뭘 하냐? 테이블과 컬럼 같은 정적인 데이터와 관련은 있지만 정적인 테이블과 컬럼이 할 수 없는 동적인 부분을 처리합니다. 이 예제에서 메서드를 사용하지는 않습니다. 설명은 끝났으니 이제 코딩을... 1. bookmarks/models.py # bookmarks/models.py from django.db import models clas..