mydogisharu   1년 전

전에 빠른 입력을 위해서 

import sys

input = sys.stdin.readline()

으로 지정한 후

a, b = map(int, input.split() )

으로 하면 무한으로 출력이 되더라구요!! 혹시 이유를 알 수 있을까요?

반대로

import sys

...

a,b = map(int, sys.stdin.readline().split() ) 

으로 하면 정상 출력이 되고(즉, 무한 출력이 되지 않고 )

a, b = map(int, input().split() ) 

으로 해도 정상 출력이 됩니다.

input = sys.stdin.readline()이렇게 지정했을 때만

출력값이 무한으로 나오는데, 이유가 무엇일까요? 

kdg870918   1년 전

위에 코드처럼 하면 두번째줄에서 input 에 한번 입력받고

while 안에서 a,b를 새로 입력받는것이 아니고 input에 들어있던 입력값을 split 하게 됩니다.

(input 이 입력받는 명령어가 아니게 됩니다.)

입력받는 횟수 1회

5번째 줄이 a,b = map(int, sys.stdin.readline().split() )일때는

반복문이 돌아갈때마다 입력받습니다.

입력받는 횟수 ?회

mydogisharu   1년 전

아!!!!!!! 그렇군요!!!!!!

감사합니다!!!!!!!!!!!! 😊😊😊😊😊😊😊😊👍👍👍👍👍👍

ufshg   1년 전

input = sys.stdin.readline 과 같이 괄호를 빼보세요

괄호를 붙이면 sys.stdin.readline()을 실행해 그 입력값을 input이라는 변수에 받는다고 보면되고

괄호를 빼면 input이라는 변수에 readline이라는 함수를 대입한다고 보시면 됩니다.

mydogisharu   1년 전

아 그렇군요! 그렇네요!! 감사합니다!!! 덕분에 제대로 된 사용법을 알게 되었네요 ㅠㅠ 너무 감사합니다!! 

❤️❤️❤️😊😊😊👍👍👍😘😘😘

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