yasoon_0115   3년 전

3
0 0 13 40 0 37
<b>---------------------------------------------------------------------------</b>
<b>TypeError</b>                                 Traceback (most recent call last)
<b><ipython-input-11-5f67650a4990></b> in <module>
     20     <b>#case3</b>
     21     <b>elif</b> d <b><</b> r1<b>+</b>r2<b>:</b>
<b>---> 22</b>         <b>if</b> <b>(</b>r1<b><</b>r2 <b>&</b> r1<b>+</b>d<b>==</b>r2<b>)</b><b>:</b> <b>#case3-1</b>
     23             print<b>(</b><b>1</b><b>)</b>
     24         <b>elif</b> <b>(</b>r2<b><</b>r1 <b>&</b> r2<b>+</b>d<b>==</b>r1<b>)</b><b>:</b> <b>#case3-2</b>

<b>TypeError</b>: unsupported operand type(s) for &: 'float' and 'float

계속 이 에러가 뜹니다.

lambda   3년 전

파이썬에서 &는 비트 연산자입니다. &를 and로 바꿔보세요

오류를 보면  float와 float사이의 &를 할 수 없다고 나옵니다. 

&의 연산자 우선순위를 보면 <,==같은 비교 연산자보다 우선순위가 높습니다. 그래서 r1<r2 & r1+d==r2 에서  r1+d가 계산된다음  부등호가 아니라 r2 & (r1+d)를  먼저 계산합니다. r2,r1+d는float인데 비트 연산자는  float는 연산하지 못하므로 typeerror가 나옵니다

yasoon_0115   3년 전

아!!  그래서 그런거군요!! 

감사합니다 ㅋㅋ

그런데,,  이번엔 오류가 아니라, 틀렸습니다   가 뜨네요.  ㅋ  다시해보겠습니다!

댓글을 작성하려면 로그인해야 합니다.