hajinpoka   1년 전

코드를 처음 실행시킬때는 정상적으로 입력이 되고 출력이 이루어지는데, 정지 버튼을 누르고 다시 시작하면 아래와 같이 뜹니다. 주피터 노트북이에요

<b>TypeError</b>                                 Traceback (most recent call last)
<b>~\AppData\Local\Temp/ipykernel_22660/93066066.py</b> in <module>
      1 <b>import</b> sys
      2 input <b>=</b> sys<b>.</b>stdin<b>.</b>readline
<b>----> 3</b> n <b>=</b> int<b>(</b>input<b>(</b><b>""</b><b>)</b><b>)</b>
      4 <b>for</b> i <b>in</b> range<b>(</b>n<b>)</b><b>:</b>
      5     A<b>,</b>B <b>=</b> map<b>(</b>int<b>,</b> input<b>(</b><b>)</b><b>.</b>rstrip<b>(</b><b>)</b><b>.</b>split<b>(</b><b>)</b><b>)</b>

<b>TypeError</b>: 'str' object cannot be interpreted as an integer

djm03178   1년 전

sys.stdin.readline은 아무런 인자를 받지 않는 함수입니다. 그렇기 때문에 sys.stdin.readline("")과 같은 표현을 쓸 수 없습니다.

처음 실행할 때에는 input이 원래의 built-in functinon인 input을 쓰기 때문에 input("")과 같이 str 인자를 받는 input을 호출할 수 있지만, 두 번째 실행할 때에는 이미 input을 sys.stdin.readline으로 대체한 뒤이기 때문에 input("")을 하는 것은 실제로는 sys.stdin.readline("")을 하는 것과 같아집니다.

사실 이건 코드를 인터랙티브 모드 대신 파일로 저장하여 실행하면 발생하지 않는 문제입니다. 코드의 테스트는 반드시 파일로 저장하여 하시기를 권장합니다.

hajinpoka   1년 전

감사합니다!

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