본문 바로가기

파이썬

(4)
파이썬 for문과 리스트 원소 제거 주의 파이썬에서 for문과 함께 리스트의 원소를 제거할 때 문제가 발생한다. a = [1,2,3,4,5,6,7,8,9] for num in a: if num%2 == 0: a.remove(num) 다음 코드를 실행하면 a = [1,3,5,7,9]가 나온다. 이상 없어보이지만 실은 코드가 실행될 때 for문은 9번이 아닌 5번만 실행된다. 첫번째 실행하면 num은 1이기 때문에 삭제가 일어나지 않는다. 두번째부터 문제가 발생한다. num은 짝수이기 때문에 if문이 작동한다. 그러면 a = [1,3,4,5,6,7,8,9] 가 된다. 세번째 for문이 실행될 때, num은 3이 아니라 4가 된다. for문이 세번째 실행되면서 리스트의 3번째 요소를 가져온다. 그래서 공교롭게도 나머지 for문이 실행되면서 짝수만 접..
파이썬으로 주식 백테스팅 파이썬으로 통해 백테스팅하는 코드를 12월에 만들었다. 일봉을 제공하는 라이브러리 pykrx로 데이터를 구해 db로 만들고 원하는 조건에 맞는 종목을 찾고 당일 매매하는 로직을 짰다. 백테스팅 결과는 망했다. 그렇다고 다 그런건 아니고 매매 로직을 잘 짠다면 충분히 의미있는 데이터를 얻을 수 있을 것이다. 예를 들어 위에 표는 미리 선정한 종목을 시가에 사서 고가가 +2프로 보다 크거나, 저가가 -4프로 보다 작으면 파는 매매로직이었는데(종가매도) 엄청난 수익률이 나왔다. 실제 데이터는 -4프로를 찍고 +2프로를 가는 경우도 있다. 그래서 실제로 저 로직으로 한다면 매일 손해일 것이다. 백테스팅 라이브러리는 많이 있는데 내 마음대로 설정하기가 번거로워 직접 DB로 하루하루 조회해서 테스팅 했다 cheog..
코드업 2001 그리디 문제 최소 대금 언어: 파이썬 링크: codeup.kr/problem.php?id=2001 최소 대금 입력은 5 행으로 이루어지며, 한 줄에 하나씩 양의 정수가 적혀있다. 1행의 정수는 첫 번째 파스타 가격이다. 2행의 정수는 두 번째 파스타 가격이다. 3행의 정수는 세 번째 파스타 가격이다. 4행 codeup.kr 문제: 입력은 5행으로 한줄에 하나씩 양의 정수가 들어온다. 1,2,3번재 숫자는 파스타의 가격, 4,5번째 숫자는 주스의 가격이다. 파스타와 주스 중 하나씩 골라 조합을 만드는데 그 중, 제일 저렴한 조합을 찾고 10% 더한 금액을 찾아 출력한다. 풀이: 들어오는 입력을 파스타 리스트와 주스 리스트로 나눈다.(또는 한 리스트에 담아도 된다.) 최소 금액 변수를 만들고 파스타 리스트와 주스 리스트의 각각 첫..
pycharm, intellij github 연동하기 파이참, 인텔리제이 둘다 방법이 같다 파이참 실행 후 상단 메뉴바에서 File - setting으로 들어간다. Setting 창에서 github를 검색하고 Add Account를 누른다 그러면 브라우저가 뜨면서 깃허브에서 권한을 주라고 나온다. 그 후 깃허브에서 권한을 주면 된다. 그 후 권한 주기를 마치면 성공했다는 창이 뜨고 pycharm에도 추가된 것을 볼 수 있다.