728x90 반응형 Python34 [Python] local variable 'profit' referenced before assignment |파이썬 에러코드| 예외가 발생했습니다. UnboundLocalError 발생 시 코드 수정 방법 에러 메시지 : local variable 'profit' referenced before assignment 발생 경우 : 변수 호출을 하지 못 할 때 발생 원인 : 전역 변수를 지역 변수로 호출할 때 해당 메시지가 발생 해결 방법 : 해당 변수를 함수 안에 전역 변수로 선언 해 주면 됨 ex) 오류 발생 하는 코드 def btc_check(): if btc_open != 0 and btc_close != 0: profit = round(((btc_close - btc_open) / btc_open) * 100, 2) print(f'등락률 : {profit}) 수정한 코드 def btc_check(): g.. 2021. 10. 23. [Python] dictionary changed size during iteration |파이썬 에러코드| 예외가 발생하였습니다. Runtime Error 발생 시 코드 수정 방법 에러 메시지 : dictionary changed size during iteration 발생 경우 : loop문 도중 dictionary key 값을 삭제할 때 발생 원인 : python에서는 dictionary를 mutable한 변수로 보고 있고 데이터가 변경되면 이를 반영하기 때문이다. 그렇기 때문에 iteration을 수행하는 도중에 key가 삭제되면 사이즈 변경을 인지하여 runtime 에러를 발생시키는 것이다. [출처] [python3] RuntimeError: dictionary changed size during iteration 해결하는 방법|작성자 예스베이비 취미가 다양한 개발자 : 네이버 블로.. 2021. 10. 20. [Python] pyupbit를 활용한 가상화폐 자동 매매 프로그램 - 3탄 |가상화폐 자동 매매 프로그램| 업비트 자동매매 프로그램 구성 참고용으로 작성하는 글입니다. 여기서 작성 하는 매매 알고리즘은 그대로 하지 따라 하지 않으시길 바랍니다. 파이썬 버전 : Python 3.9.5 32bit 필수 모듈 : pyupbit, deque 모듈 설치 방법 pip install pyupbit 매수한 코인 매도 조건 체크 후 매도 진행 하기 import time import pyupbit from collections import deque #주문은 초당 8회, 분당 200회 / 주문 외 요청은 초당 30회, 분당 900회 사용 가능합니다. # 업비트 access key, secret key 변수 upbit_access = "your_access_key" upbit_secret = "y.. 2021. 9. 7. [Python] pyupbit를 활용한 가상화폐 자동 매매 프로그램 - 2탄 |가상화폐 자동 매매 프로그램| 업비트 자동매매 프로그램 구성 참고용으로 작성하는 글입니다. 여기서 작성 하는 매매 알고리즘은 그대로 하지 따라 하지 않으시길 바랍니다. 파이썬 버전 : Python 3.9.5 32bit 필수 모듈 : pyupbit, deque 모듈 설치 방법 pip install pyupbit 이동평균선 정배열 / 매수 목표가(시가보다 2프로 상승) 도달 시 시장가 매수 진행 import time import pyupbit from collections import deque #주문은 초당 8회, 분당 200회 / 주문 외 요청은 초당 30회, 분당 900회 사용 가능합니다. # 업비트 access key, secret key 변수 upbit_access = "your_access_ke.. 2021. 9. 5. [Python] pyupbit를 활용한 가상화폐 자동 매매 프로그램 - 1탄 |가상화폐 자동 매매 프로그램| 업비트 자동매매 프로그램 구성 참고용으로 작성하는 글입니다. 여기서 작성 하는 매매 알고리즘은 그대로 하지 따라 하지 않으시길 바랍니다. 파이썬 버전 : Python 3.9.5 32bit 필수 모듈 : pyupbit, deque 모듈 설치 방법 pip install pyupbit 업비트 원화로 매매가능한 코인 리스트 가져와서 이동평균선 구하기 import time import pyupbit from collections import deque #주문은 초당 8회, 분당 200회 / 주문 외 요청은 초당 30회, 분당 900회 사용 가능합니다. tickers = [] # 코인 리스트 # 코인 종가 담을 deque 변수 ma20 = deque(maxlen=20) ma60 = .. 2021. 9. 2. [Python] conda 명령어 |Conda 명령어| 명령어 설명 conda -–version 콘다 버전 확인 conda update –n base conda 아나콘다 최신 버전 업데이트 conda update --all 콘다에 있는 파이썬 패키지 전체 업데이트 conda create -n upbit python=3.7.8 가상환경 만드는 명령어 conda env list 콘다 가상환경 목록 확인 conda activate upbit 가상환경 활성화 conda deactivate 가상환경 비활성화 conda remove -n upbit --all 가상환경 전체 삭제 python -m pip install --upgrade pip 파이썬 pip 업그레이드 pip install tensorflow Tensorflow 설치 pip insta.. 2021. 8. 22. [Python] pyupbit를 활용한 업비트 스토캐스틱(stochastic) 적용 |업비트_스토캐스틱 (stochastic) 적용| 스토캐스틱 (stochastic) fast_k, slow_k 값 적용 함수 import pyupbit import pprint #코인별로 1시간봉 데이터 베이스 생성 def tickers_db(ticker): df = pyupbit.get_ohlcv(ticker, interval='minute60', count=120) return df # Fast %K = ((현재가 - n기간 중 최저가) / (n기간 중 최고가 - n기간 중 최저가)) * 100 def get_stochastic_fast_k(close_price, low, high, n): fast_k = ((close_price - low.rolling(n).min()) / (high.rolling.. 2021. 8. 18. [Python] 파이썬 버튼 클릭 시 파일 선택 창 띄우기 |버튼 클릭 시 파일 선택 창 띄우기| 파이썬 버튼 클릭 시 파일 선택 창 띄우기 from tkinter import * from tkinter import filedialog from tkinter import messagebox root = Tk() root.title("파일 선택 창") # 타이틀 설정 file_frame = Frame(root) file_frame.pack(fill="x", padx = 5, pady= 5) root.geometry("640x480") # 가로 *세로 사이즈 root.resizable(False, False) #가로 *세로 사이즈 변경 가능 유무 files = None #파일 경로 담을 변수 생성 def file_select(): files = filedialog... 2021. 8. 9. [Python] 파이썬 버튼 클릭 시 폴더 선택 창 띄우기 |버튼 클릭 시 폴더 선택 창 띄우기| 파이썬 버튼 클릭 시 파일 선택 창 띄우기 import os from tkinter import * from tkinter import filedialog from tkinter import messagebox root = Tk() root.title("폴더 선택 창") # 타이틀 설정 file_frame = Frame(root) file_frame.pack(fill="x", padx = 5, pady= 5) root.geometry("640x480") # 가로 *세로 사이즈 root.resizable(False, False) #가로 *세로 사이즈 변경 가능 유무 dir_path = None #폴더 경로 담을 변수 생성 file_list = [] #파일 목록 담을 .. 2021. 8. 9. [Python] 파이썬 폴더 선택 창 띄우고 파일 목록 출력 하기 |파일 목록 출력 하기| 파이썬 폴더 선택 창 띄우고 파일 목록 출력 하기 import os from tkinter import filedialog from tkinter import messagebox dir_path = None #폴더 경로 담을 변수 생성 file_list = [] #파일 목록 담을 변수 생성 #dir_path 변수에 선택 폴더 경로 넣기 dir_path = filedialog.askdirectory(initialdir="/",\ title = "폴더를 선택 해 주세요") #폴더 선택 안했을 때 메세지 출력 if dir_path == '': messagebox.showwarning("경고", "폴더를 선택 하세요") else: res = os.listdir(dir_path) # 폴더.. 2021. 8. 8. [Python] 파이썬 텍스트(txt) 파일 쓰기 |텍스트(txt) 파일 쓰기| 일자가 바뀔때마다 텍스트 파일 명이 바뀌고 텍스트 파일 안에 내용 추가 하기 from datetime import datetime import time a = '철수' b = '철슈' while True: #무한 루프 중에 조건이 만족 할때 텍스트 파일 열고 내용 쓰기 진행 if a == b : #오늘 날짜가 파일명으로 txt파일 생성 ex)21-07-29.txt dir_file = f'{datetime.now().date()}.txt' try: with open(dir_file, 'a', encoding='UTF-8') as f: f.write(f'내용을 추가\n') except: print('파일 열기 실패') else: time.sleep(60) print('1분 마다.. 2021. 7. 29. [Python] 자료형 변환 |자료형 변환| 1. input() 함수로 입력 받은 값을 int, float으로 변환 하기 # int로 변환하기 a = int(input("첫 번재 숫자를 입력 : ")) b = int(input("두 번재 숫자를 입력 : ")) print(a + b) # float로 변환하기 a = float(input("첫 번재 숫자를 입력 : ")) b = float(input("두 번재 숫자를 입력 : ")) print(a + b) # 오류 int 변환 함수에 float 값이 입력 될 경우 오류 발생 예외가 발생했습니다. ValueError invalid literal for int() with base 10: '10.0' float 변환 함수에 str 값이 입력 될 경우 오류 발생 예외가 발생했습니다. Val.. 2021. 7. 18. [Python] 변수와 입력 |변수와 입력| 1. 변수란? 데이터에 이름을 붙인 것 # 왼쪽에 변수 이름 = 오른쪽에 변수에 들어갈 값 a = 10 b = 3.14 c = '안녕하세요' 2. 복합 대입 연산자란? 변수에 변수 와 값을 연산자와 함께 선언하는 것 # 복합 대입 연산자 a = a + 1 a += 1 a = a - 1 a -= 1 3. input() 함수 = 입력 받는 함수 # input() 함수 = 입력 받은 값은 무조건 Str 타입으로 들어 온다. a = input ("첫 번째 입력 값 : ") b = input ("두 번째 입력 값 : ") print(a) print(b) 2021. 7. 18. [Python] 숫자 |숫자| 1. 숫자 # 소수점이 없는 숫자(정수) 1, 2, 3, 4, 100292 10 Integer : Int # 소수점이 있는 숫자(정수 < 실수) 52.28, 95.56 10.0 2021. 7. 15. [Python] 문자열 |문자열| 1. 문자 선택 연산자 # 선택 숫자 시작은 0부터 시작된다. print('안녕하세요'[0]) print('안녕하세요'[1]) print('안녕하세요'[2]) print('안녕하세요'[3]) print('안녕하세요'[4]) print('') print('안녕하세요'[-1]) print('안녕하세요'[-2]) print('안녕하세요'[-3]) print('안녕하세요'[-4]) print('안녕하세요'[-5]) 안 녕 하 세 요 요 세 하 녕 안 2. 문자열 슬라이싱 # 슬라이싱에서 뒤쪽 숫자는 포함 안됨 print('안녕하세요'[0:1]) print('안녕하세요'[0:2]) print('안녕하세요'[0:3]) print('') print('안녕하세요'[:3]) print('안녕하세요'[2:]) .. 2021. 7. 15. 이전 1 2 3 다음 728x90 반응형