공부일지

TypeError: '<' not supported between instances of 'float' and 'str' 본문

Computer/Trouble Shooting

TypeError: '<' not supported between instances of 'float' and 'str'

이르리의 공부일지 2023. 9. 11. 15:37

당일 오류

 

1. bid_class 수정 중 뜬 에러

 

TypeError: '<' not supported between instances of 'float' and 'str'

 

해결! 15:24

bid_class 문제: 범위를 지정했는데도 잘못된 class 값이 찍힘

해결법: 조건문 구조 바꾸고 winning_bid, estimate_min, estimate_max에 int() 적용함

해결방법 선정이유: 여러 방법으로 해결하던 중 나왔던 TypeError: float, str는 비교 안된다는 게 있어서

Float 이어서 문제인가 싶어 찾아봤더니

float끼리 비교할 때는 부동 소수점 문제로 인해 오류가 생길 수 있다고 한다.

그 이유는 컴퓨터라는 녀석은 메모리에 한계가 있기 때문에 근사로 값을 저장한다.

 

그 방식에는 고정소수점과 부동소수점이 있다.

고정소수점은 부호/정수 표현/소수 표현에 해당하는 자리가 고정돼 있기 때문에 부정확한 값을 저장할 수 밖에 없다.

이보다 비교적 보완된 방법이 부동소수점이다.

IEEE에서 표준으로 정한 방법인 IEEE 754 32비트 단정밀도를 따른다.

부호부, 지수부, 가수부로 구분된다.

 

산수를 하기 위해선 python에서는 decimal 혹은 fractions 모듈을 이용해서 계산해주면 된다.

 

 

 

참고 블로그

https://oz1ng019.tistory.com/67

 

[Tips] Python float형(부동소수점) 계산 오차 발생 이유 및 해결법

파이썬3로 개발하다가 단순 float형끼리의 계산에서 오차가 발생한다는 것을 알았다. ????????????????? 아니 이게 왜... 분명 0.043-0.001의 값은 0.042가 나와야하는데 0.0419999.....가 나온다... (참고로 python

oz1ng019.tistory.com

 

더 자세하고 고마운 글

 

 

2. Viscose 디버거 사용

 

프로젝트 파일에 실행하는 데 터미널에 실행 경로만 나옴.

아직 정확한 이유는 모르겠음.

 

 

시도

1. 맥 보안 권한 설정 - 해결 ㄴㄴ

https://drehzr.tistory.com/1486

 

문제해결)Mac) VSCode 디버깅 안되는 경우 확인 사항

VSCode 디버깅 안되는 경우 확인 사항 Mac에서 VSCode를 사용하는 경우 디버깅 버튼을 눌러도 실행되다가 꺼지는 현상이 있어서 해결한 방법을 포스팅한다. [Edit] - [Preferences] External Tools에 VScode가 연

drehzr.tistory.com

 

새롭게 만든 파일은 되는데 기존 프로젝트 파일은 안 됨

 

왜지? 11:45

 

 

---

원래는 디버거 기능을 이용해서 bid_class 문제점을 알아내려 했다

 

그러나 기존 프로젝트 파일이 안 되므로

 

새롭게 크롤러 만들 때 디버거 써보고

 

프로젝트 파일과 최대한 유사하게 만들어보면서 문제점을 찾아보겠음.  13:33

 

 

 

 

3. 함수 안의 함수

부제: bid_class, competition 관련해서 

 

여러 가지 경우를 중첩하고 싶을 때

간단하게 모듈화해서 접근하고 싶다. 

 

이 때 함수 안의 함수를 쓰면 된다. 

 

독립적인 각각의 경우를 여러 개 연결하고 싶을 때 말이다.

 

 

 

참고 블로그

 

https://rfriend.tistory.com/368

 

[Python] 함수 안의 함수 : 중첩함수(Nested Function), 재귀함수(Recursive Function)

이번 포스팅에서는 Python의 함수 중에서도 '함수 안의 함수 (Function in Function)' 로서 - (1) 중첩 함수 (Nested Function): 함수 안에 정의된 함수- (2) 재귀 함수 (Recursive Function): 함수 안에 자기 자신을 호

rfriend.tistory.com