Python 345

x만큼 간격이 있는 n개의 숫자

문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 해결 방법 def solution(x, n): return [ x * (i+1) for i in range(n) ] 1. 우선 range를 이용해 n의 수 만큼 반복한다. 2. i는 0부터 생성되므로 +1을 하여 실제 반복 수로 바꿔주었다. 3. x 를 (i+1) 과 곱해주어 x가 배수로 생성되도록 하였다. 4. 리스트에 담아 리턴한다. >>> 처음에는 for 문으로 풀었..

threading 왜 되는 걸까? PumpMessages가 뭐길래?

목표 flask-app 실행 후 Cybos-Subscribe 시작, event 수신 데이터 받아 DB에 저장하기 문제 성공한 줄 알았던 threading이 다시 보니 정상적으로 작동하지 않음 스레드는 나눠진 것 같으나 cybos api의 정보를 정상적으로 받아오지 못하는 상황 cybos api 오류가 뜨거나 flask context app 오류가 뜨거나, 정확한 원인도 파악하지 못하는 상황 행동 일단 리더님께 말씀드리고 피드백에 따라 flask와 분리하여 작게 테스트를 해보기 시작 cybos api 오류의 경우 pythoncom.CoInitialize()로 어떻게든 잡음 서브 스레드의 경우 cybos 인스턴스를 초기화해야하기 때문? >>> 레퍼런스 기존 PumpWaitingMessages 코드를 Pump..

Log/Today 2022.01.13

직사각형 별찍기

문제 별(*) 문자를 이용해 가로의 길이가 a, 세로의 길이가 b인 직사각형 형태를 출력해보세요. 풀이 ''' a = 5 (가로) b = 3 (세로) ''' for i in range(b): for j in range(a): print('*', end='') print(sep='\n') >>> ***** ***** ***** ''' 채점 결과 정확성: 100.0 합계: 100.0 / 100.0 ''' 느낀점 오랜만에 문제를 만나니 순간 어떻게 풀어야하지? 라는 막막함이 있었음 매일 조금씩 꾸준히 풀어나가는 습관이 중요하다고 느껴짐 쉬운 문제부터 되도록 하루에 한 문제씩 풀어보자 너무 어려운 문제는 오랜 시간을 두고 고민해보자

threading 으로 python병렬처리 성공

목표 flask-app 실행 후 Cybos-Subscribe 시작, event 수신 데이터 받기 문제 Subscribe 프로세스를 계속 유지하지 않으면 실시간 데이터를 받을 수 없음 행동 pump기능을 그대로 적용하여 무한 루프를 돌리고, 대신 스레드를 나누기로 함 파이썬은 단일 스레드이기 때문에 threading 을 사용하여 스레드를 분리함 결과 스레드를 분리하니 event 수신 데이터는 지속적으로 받으면서도 다른 api 요청이 가능해짐 # router.py import threading import BidAsk, start_subscribe @app.route("/") def start(): # 서브 스레드에서 COM 객체를 사용하려면 COM 라이브러리를 초기화 해야함 pythoncom.CoIniti..

Log/Today 2022.01.12

'ManyToManyField' 또는 '중간테이블'로 데이터 가져오는 방법

django(장고)에서 만들려는 데이터베이스 테이블의 관계가 n:n 관계, 즉 ManyToMany 관계의 테이블을 생성하는 방법은 크게 3가지가 있다. 1번 >>> 중간 테이블을 만들어 중간테이블이 각각 다른 테이블을 FK로 가져오는 방법 2번 >>> models.py 작성시에 다대다 관계의 테이블 중 하나의 테이블에 ManyToManyField를 사용하는 방법(이 방법은 장고가 자동으로 중간테이블을 생성해준다) 3번 >>> 1번, 2번 모두 사용하는 방법으로 중간 테이블을 만들고, ManyToManyField도 사용하면서 중간 테이블 지정을 미리 만들어둔 중간테이블로 지정하는 방법 *세 가지 방법에 대한 차이점(아래 예제를 보고 오면 이해가 될거에요!) 더보기 차이점1. >>> 1번의 경우 A에서 한 ..