python读取输入的数字sys_python – sys.stdin.readline()和input():在读取输入行时哪个更快,为什么?...

内置输入和sys.stdin.readline函数不完全相同,哪一个更快可能取决于你正在做什么的细节.正如

aruisdante评论的那样,Python 3中的差异小于Python 2中的差异,当你提供的引用来自,但仍然存在一些差异.

第一个区别是输入有一个可选的提示参数,如果解释器以交互方式运行,将显示该参数.即使提示为空(默认值),这也会导致一些开销.另一方面,如果您确实需要提示,则可能比在每个readline调用之前执行打印更快.

下一个区别是输入从输入的末尾剥离任何换行符.无论如何你要剥离它,让输入为你做的更快,而不是做sys.stdin.readline().strip().

最后的区别是如何指示输入的结束.如果没有更多输入(stdin已在另一端关闭),当你调用它时,输入将引发一个EOFError.另一方面,sys.stdin.readline将在EOF返回一个空字符串,您需要知道该字符串以进行检查.

还有第三个选项,使用sys.stdin上的文件迭代协议.这很可能与调用readline非常相似,但也许更好的逻辑.

我怀疑虽然各种选项之间的性能差异可能存在,但它们比简单地从磁盘读取文件(如果它很大)并做任何你正在做的事情的时间成本要小.我建议你避免过早优化的陷阱,只做对你的问题最自然的事情,如果程序太慢(“太慢”非常主观),你做一些分析,看看什么是最多的时间.除非实际上重要,否则不要花费大量精力来决定采用不同的输入方式.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值