입()vs sys.stdin.read()
-
15-11-2019 - |
문제
import sys
s1 = input()
s2 = sys.stdin.read(1)
#type "s" for example
s1 == "s" #False
s2 == "s" #True
왜?어떻게 만들 수 있습니 input()
제대로 작동하려면?나를 인코딩/디코딩 s1
, 지만,그것은 작동하지 않습니다.
감사합니다.
해결책
는 경우 윈도우에서,당신은 알 수 있는 결과 input()
입력할 때's'와 입력 "s\r"
.스트립 모든 후행 공백에서의 결과와 좋은 결과를 얻게 됩니다.
다른 팁
당신은 말하지 않았다는 Python 버전은 사용,그래서 나는 당신이 사용하는 파이썬 3.2 에서 실행 되는 Microsoft Windows.
이것은 알려진 버그 보 http://bugs.python.org/issue11272 "입력()가 뒤 캐리지 리턴에서 윈도우"
해결 방법을 포함하여 다른 버전의 Python,운영 체제를 사용하지 않는 윈도우,또는 스트립 끄는 포함합니다 어떤 문자열은()에서 반환 input()
.당신이 알고 있어야인 반복을 통해 표준입력은 동일한 문제입니다.
첫째,입력은 다음과 같 eval(raw_input()) 모든 것을 전달하는 것입 evalualted 로 python 식.나는 당신이 사용하 raw_input()instead.
테스트 코드들이 동일한 내:
import sys
s1 = input()
s2 = sys.stdin.read(1)
if s1==s2 and s1=="s":
print "They're both equal s"
이것은 출력:
flaper87@BigMac:/tmp$ python test.py
"s"
s
They're both equal s
사용 sys.stdin.읽기(1)읽기 단지 1 문자에서 stdin 는 것을 의미로 전달하는 경우"s"첫"읽을 수 있습니다.가 sys.stdin.readline()를 읽고 전체 라인(를 포함하여 최종 ).
제휴하지 않습니다 StackOverflow