문제

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()를 읽고 전체 라인(를 포함하여 최종 ).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top