Python
-
파이썬 random으로 로또 번호 생성기, 경품 추첨기 만들기Python/이것저것 파이썬 2021. 11. 1. 08:11
https://docs.python.org/ko/3/library/random.html random — 의사 난수 생성 — Python 3.10.0 문서 random — 의사 난수 생성 소스 코드: Lib/random.py 이 모듈은 다양한 분포에 대한 의사 난수 생성기를 구현합니다. 정수에 대해서는, 범위에서 균일한 선택이 있습니다. 시퀀스에 대해서는, 무작위 docs.python.org random.shuffle 시퀀스 x를 제자리에서 섞습니다. shuffle을 이용해 100명 중에 (순서가 있는) 3명을 뽑아봅시다. result는 추첨함이라고 생각합시다. 추첨함에 0~99 까지 번호표를 넣고, 4번 흔든(셔플한) 뒤, 3장의 번호표를 뽑는 과정입니다. 실 생활속의 추첨 과정과 거의 같도록 코딩해 보..
-
플라스크 입문서를 찾으신다면...Python/Flask 2021. 10. 29. 18:24
https://book.naver.com/bookdb/book_detail.naver?bid=12841991 Head First Python 최신 인지과학이론을 바탕으로 반복학습/재미요소를 모두 갖춘 파이썬 학습서 이 책은 『Head First』 시리즈 학습 원리에 기초하여 모든 페이지가 그림과 대화체를 바탕으로 구성되어 있습니다. book.naver.com 헤드 퍼스트 파이썬 Head First Python (개정판)을 추천합니다. 제가 파이썬 처음 공부할 때 읽었던 책의 개정판이 나왔길래... 뭐가 바뀐걸까 궁금해서.. 심심해서.. Yes24 북클럽 회원이니까.. 읽어봤는데, 의외로 잘 쓰여진 플라스크 입문서더군요. 이 책의 절반은 파이썬 입문, 나머지는 플라스크 입문입니다. 이전판에는 별도의 웹 프..
-
파이썬 bool()Python/이것저것 파이썬 2021. 10. 26. 15:32
파이썬에는 bool 내장 함수가 있다. 거의 쓸 일이 없긴 한데.. 가끔 리턴 문에 활용하면 깔끔하다... def has_intersection(a: set, b: set) -> bool: """ a, b 두 집합의 교집합에 원소가 하나라도 있으면 True, 없으면 False""" return bool(a.intersection(b)) print(has_intersection({1, 2}, {3, 4})) print(has_intersection({1, 2}, {2, 4})) print(has_intersection(set(), set())) print(has_intersection(set(), {1}))
-
Python doctestPython/이것저것 파이썬 2021. 10. 24. 15:32
docstring 을 이용한 간단한 테스트. import doctest def test(n): """ >>> test(1) 1211 """ return n + 120 doctest.testmod() 독스트링 내 >>> 뒤에 작성 다음 줄에는 결과를 작성하고 실행. 파이참에서는 'import doctest' 임포트 문과 'doctest.testmod()' 문을 작성하지 않아도 테스트해 줌.. 파이참에서의 결과는 다음과 같다. Failure ********************************************************************** File "C:/PyProjects/test/test.py", line 3, in test Failed example: test(1) Expec..
-
파이썬 싱글턴 패턴Python/이것저것 파이썬 2021. 10. 23. 13:31
인스턴스가 하나만 생성되어야 할 때 사용하는 패턴. 간단히 class Singleton(type): __instance = None def __call__(cls, *args, **kwargs): if cls.__instance is None: cls.__instance = super().__call__(*args, **kwargs) return cls.__instance class MyClass(metaclass=Singleton): def __init__(self, x): self.x = x m1 = MyClass(1) m2 = MyClass(2) print(m1, m2) assert m1 is m2 print(m1.x, m2.x) assert m1.x == m2.x # print(m1, m2) # ..
-
옵저버 패턴(observer pattern)Python/이것저것 파이썬 2021. 10. 23. 12:35
# observer pattern 1 class Subscriber: def __init__(self, name): self.name = name def update(self, message): print(f'{self.name}, {message}') class Publisher: def __init__(self): self.subscribers = set() def register(self, person): self.subscribers.add(person) def unregister(self, person): self.subscribers.remove(person) def dispatch(self, message): for subscriber in self.subscribers: subscriber..
-
URL namespace 'xxx' isn't unique.Python/초간단 장고 Django 2021. 6. 28. 06:25
# board/urls.py from django.urls import path from .views import (... 생략 ...) app_name = 'board' urlpatterns = [ path('', ArticleList.as_view(), name='index'), ... 생략 ... ] 앞서 만들었던 BBS에서 urls.py에 app_name (템플릿과 urls.py에서 사용할 수 있는 네임스페이스)을 지정하면 다음 경고가 발생한다. WARNINGS: ?: (urls.W005) URL namespace 'board' isn't unique. You may not be able to reverse all URLs in this namespace (사용한) URL 네임스페이스가 uniqu..