栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

sys.stdin.readline()和input():读取输入行时哪个更快,为什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sys.stdin.readline()和input():读取输入行时哪个更快,为什么?

内建函数

input
sys.stdin.readline
函数的功能并不完全相同,哪个函数的速度更快可能取决于您正在执行的操作的细节。正如aruisdante所评论的那样,当您提供的报价来自于Python
3时,其差异要小于Python 2中的差异,但仍然存在一些差异。

第一个区别是

input
具有一个可选的提示参数,如果解释器正在交互运行,将显示该参数。即使提示为空(默认值),这也会导致一些开销。另一方面,如果您确实需要提示,它可能比
print
在每次
readline
呼叫之前执行a都要快。

下一个区别是

input
从输入的末尾去除任何换行符。如果您仍然要删除该内容,那么
input
让它为您完成而不是这样做可能会更快
sys.stdin.readline().strip()

最后的区别是如何指示输入的结尾。如果没有更多输入(另一端的stdin已关闭),则在调用它时

input
会引发
EOFError
sys.stdin.readline
另一方面,将在EOF返回一个空字符串,您需要知道该字符串以进行检查。

还有第三个选项,在上使用文件迭代协议

sys.stdin
。这可能很像call
readline
,但逻辑可能更好。

我怀疑虽然各种选项之间的性能差异可能存在,但它们希望比简单地从磁盘读取文件(如果文件很大)并执行任何操作所花费的时间成本小。我建议您避免过早优化的陷阱,而只执行最适合您问题的方法,并且如果程序太慢(“太慢”是非常主观的),则可以进行性能分析以了解最有效的方法时间。除非实际上很重要,否则不要在决定采用不同输入方式之间花费大量精力。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号