파이썬 비교연산 문제
조회수 1202회
class Fraction:
def __init__(self, num, denom):
self._num = num
self._denom = denom
def __repr__(self):
return str(self)
def __str__(self):
return str(self._num) + "/" + str(self._denom)
def __gt__(self, other):
return (self._num * other._denom) < (other._num * self._denom)
if __name__ == "__main__":
f1 = Fraction(1, 4)
f2 = Fraction(1, 5)
print(f"{f1} < {f2} ->> {f1 < f2}")
파이썬 문제입니다. 위에 처럼 코드를 짰습니다. 분수의 크기를 비교하는 함수를 정의해서 하는 과제인데요
돌리면
1/4 < 1/5 ->> True
이렇게 나옵니다. 1/4 < 1/5 ->> False로 나와야 하는거 아닌가요?. 코드는 잘 실행되는데 이상한 것 같아 질문드립니다. 뭐가 문제 인걸까요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
이상하긴 이상하다 싶어서 공식 문서를 봤습니다.
구체적으로, (…)
gt(a, b)
는a > b
와 동등하고, (…)원하시는 것을 작성하려면
__lt__(self, other)
를 정의하셔야 할 거 같습니다.
댓글 입력