Python/이것저것 파이썬
-
파이썬 + SQLite 사용 후 몇 가지 기록Python/이것저것 파이썬 2021. 11. 4. 10:09
당연한 이야기 몇 가지 기억을 위해 남깁니다. 0. commit 데이터를 조작하는 INSERT, REPLACE, DELETE 등의 명령은 커밋이 필요합니다. 오토 커밋도 가능 하지만... from sqlite3 import connect DB = 'test.sqlite3' def query_and_commit(sql): """ INSERT, REPLACE, DELETE ... """ with connect(DB) as conn: cur = conn.cursor() cur.execute(sql) conn.commit() # commit def query(sql): """ SELECT ... """ with connect(DB) as conn: cur = conn.cursor() yield from cur...
-
파이썬 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장의 번호표를 뽑는 과정입니다. 실 생활속의 추첨 과정과 거의 같도록 코딩해 보..
-
파이썬 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..
-
[기사] “2~5배 더 빠르게”··· 귀도 반 로섬, 파이썬 속도 개선한다Python/이것저것 파이썬 2021. 5. 17. 09:06
https://www.ciokorea.com/news/193909?fbclid=IwAR3fpAX6fbBlmBqKJX5I6eEYwWWVQIUiMb3PP4D7Knm2qryEwHkbpV20ods “2~5배 더 빠르게”··· 귀도 반 로섬, 파이썬 속도 개선한다 파이썬(Python) 창시자 귀도 반 로섬이 파이콘 2021(Pycon 2021)에서 진행된 파이썬 랭귀지 서밋(Python Language Summit)에서 파이썬 속도를 2배에서 5배까지 더 빠르게 만들기 위한 단기 및 장기 계획을 발표 www.ciokorea.com 파이썬 창시자 귀도 반 로섬 "최대 약점인 속도 최대 5배 향상 예정" 속도향상 프로젝트는 마이크로소프트 산하 연구팀 주도
-
덕 타이핑Python/이것저것 파이썬 2021. 5. 16. 08:48
Duck Typing - 'If it walks like a duck and it quacks like a duck, then it must be a duck' '오리처럼 걷고, 오리처럼 꽥꽥거리면, 그것은 오리임이 틀림없다.' 간단하게 코드를 만들어 봤습니다. Bird와 Cat는 전혀 다른 클래스입니다. 하지만 같은 메서드명을 가지고 있기 때문에 who_sing 함수에서 두 클래스의 메서드를 모두 사용할 수 있습니다. 파이썬에서는, 전혀 다른 클래스지만 같은 이름의 속성이나 메서드가 있다면, 특별한 구분 없이 쓸 수 있음을 알 수 있죠. 어떤 객체가 어떤 타입에 걸맞은 속성(변수)과 메서드(함수)를 가지면, 그 객체는 해당 타입에 속하는 것으로 간주하는 것을 덕 타이핑이라고 합니다. class Bird..