从 Python 的标准输入读取一行

发布于 2024-11-28 03:07:51 字数 118 浏览 2 评论 0原文

以下两种从标准输入读取行的方法之间有何区别(如果有):raw_input()sys.stdin.readline() ?在什么情况下这些方法中的一种比另一种更可取?

What (if any) are the differences between the following two methods of reading a line from standard input: raw_input() and sys.stdin.readline() ? And in which cases one of these methods is preferable over the other ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

另类 2024-12-05 03:07:51

raw_input() 采用可选的 prompt 参数。它还从返回的字符串中删除尾随换行符,并支持历史记录功能,如果 readline 模块已加载。

readline() 采用可选的 < code>size 参数,不会去除尾随换行符,也不支持任何历史记录。

由于它们不做相同的事情,因此它们实际上不能互换。我个人更喜欢使用 raw_input() 获取用户输入,并使用 readline() 从文件中读取行。

raw_input() takes an optional prompt argument. It also strips the trailing newline character from the string it returns, and supports history features if the readline module is loaded.

readline() takes an optional size argument, does not strip the trailing newline character and does not support history whatsoever.

Since they don't do the same thing, they're not really interchangeable. I personally prefer using raw_input() to fetch user input, and readline() to read lines out of a file.

苹果你个爱泡泡 2024-12-05 03:07:51

“但是,从许多 Python 初学者和教育工作者的角度来看,sys.stdin.readline() 的使用存在以下问题:

  1. 与名称“raw_input”相比,名称“sys.stdin.readline( )” 笨重且不优雅。

  2. 名称“sys”和“stdin”对于大多数初学者来说没有任何意义,他们主要感兴趣的是函数的作用,而不是它在包结构中的位置。缺乏意义也使得很难记住:它是“sys”吗? .stdin.readline()”还是“stdin.sys.readline()”?对于编程新手来说,没有任何明显的理由更喜欢其中一个。相反,函数简单而直接的名称,如 print、input、而 raw_input 和 open 更容易 记住。”从这里: http://www.python.org/dev/peps/pep-3111 /

"However, from the point of view of many Python beginners and educators, the use of sys.stdin.readline() presents the following problems:

  1. Compared to the name "raw_input", the name "sys.stdin.readline()" is clunky and inelegant.

  2. The names "sys" and "stdin" have no meaning for most beginners, who are mainly interested in what the function does, and not where in the package structure it is located. The lack of meaning also makes it difficult to remember: is it "sys.stdin.readline()", or " stdin.sys.readline()"? To a programming novice, there is not any obvious reason to prefer one over the other. In contrast, functions simple and direct names like print, input, and raw_input, and open are easier to remember." from here: http://www.python.org/dev/peps/pep-3111/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文