주식공부/파이썬 주식

Type error : not enough arguments for format string 해결 방법

일찍자요 2022. 12. 12. 10:11
반응형

오늘도 아마 별다른 매매는 없을 것 같지만, 프로그램 에러가 떠 있어서 확인해 보았습니다.

 

'Type error : not enough arguments for format string'

 

이 에러는 변수 갯수와 변수에 들어갈 데이터 갯수가 안맞을 때 발생하는 에러였습니다.

 

프로그램 상 물타기로 지정해둔 곳에서 발생했는데,

아무리 봐도 변수와 데이터 갯수는 일치합니다. 전혀 문제가 없죠. 그런데 왜 에러가 떴습니다.

그리고, 물타기 코드가 여러개가 있는데 그 중 한 곳에서만 발생해서 계속 보다보니 차이가 있었습니다.

 

# 오류안생김
self.logging.logger.debug("%s %s주 실시간 1차 물타기 조건통과" % (code_nm, quantity))


# 오류생김
self.logging.logger.debug("%s %s주 -10%미만 종목 실시간 1차 물타기 조건통과" % (code_nm, quantity))

첫번째 코드는 오류가 안생기고, 두번째 코드는오류가 생깁니다.

오류가 보이실까요?

코린이는 이런걸 아무렇지 않게 쓰고 지나갔는데, 계좌에 -10%가 넘어가는게 생기다보니 드디어 문제가 나타난 것입니다.

슬프군요..

 

원인은 -10%의 '%'기호 때문이었습니다.

 

#수정전
self.logging.logger.debug("%s %s주 -10%미만 종목 실시간 1차 물타기 조건통과" % (code_nm, quantity))

#수정후
self.logging.logger.debug("%s %s주 -10퍼미만 종목 실시간 1차 물타기 조건통과" % (code_nm, quantity))

이렇게 -10%를 -10퍼 로만해줘도 코딩은 아무 오류없이 깔끔하게 돌아갑니다.
왜 %를 인식해버리는 것인지 까지는 잘 모르겠지만, 어쨌든 오류는 해결이 되었습니다.

 

 

오늘의 레슨

1) 변수와 데이터 갯수가 맞지 않으면 Type error : not enough arguments for format string 가 발생한다.

2) 파이썬에서 %가 붙으면 변수로 인식할 수 있다.

 

 

 

 

 

반응형