input()和sys.stdin有什么区别?

raj*_*raj 7 python input sys

我是python的新手并在线尝试一些编码问题.我接受sys.sdnin很多接受输入.我想知道如何input()sys.stdin在行动不同?

Inv*_*sus 1

哎哟..一连串的downvotes ..

这是让你入门的东西:

内置函数 input读取输入的从所述线路标准输入流,任选地与一个消息提示.但是要小心提示,因为结果是:

result = input('Do you want to do whatever? ')  ## doesn't work how you'd expect
if result.lower() in ('y', 'ye', 'yes', 'yup', 'ya'):
    do_whatever()
    ...
else:
    do_something_else()
    ...
Run Code Online (Sandbox Code Playgroud)

..也将包括提示字符串(因此永远不会等于'y'/'yes'/ etc).在我看来,最好先打印提示字符串,然后调用没有args的输入,如下所示:

print('Do you want to do whatever?')
result = input()  ## notice that there is no prompt string passed to input()
if result.lower() in ('y', 'ye', 'yes', 'yup', 'ya'):
    do_whatever()
    ...
else:
    do_something_else()
    ...
Run Code Online (Sandbox Code Playgroud)

所以,为了概括,所述内建函数 input读取从输入标准输入流(sys.stdin)和内置函数 print输出打印到标准输出流(sys.stdout).还有第三个,标准错误流(sys.stderr),打印出未处理的异常.

通常,您不必太担心它.它只是在构建IDE和框架等时; 但是,如果你有兴趣,我可以进入如何勾选它们.尽管如此,我甚至不确定你是否还在检查你的SO,所有事情都要考虑.(不确定我会责备你,考虑到downvote讨厌lol)

无论如何,希望我帮助过!:)

  • "*将包括提示字符串*"< - 我不确定你的意思,如果我用`x = input('here')测试它; print(x)`我不明白'here'输出到解释器,除非这是我在提示符处输入的内容.虽然我正在阅读你所写的内容,但我应该得到"在这里"的输出以及我输入的内容......欢呼 (6认同)