Search code examples
pythonpython-3.xinputpython-3.2

input() vs sys.stdin.read()


import sys
s1 = input()
s2 = sys.stdin.read(1)

#type "s" for example

s1 == "s" #False
s2 == "s" #True

Why? How can I make input() to work properly? I tried to encode/decode s1, but it doesn't work.

Thank you.


Solution

  • If you're on Windows, you'll notice that the result of input() when you type an 's' and Enter is "s\r". Strip all trailing whitespace from the result and you'll be fine.