每个人都知道如何在 C 中计算 STDIN 中的字符。但是,当我尝试在 python3 中执行此操作时,我发现这是一个难题。 (计数器.py)
import sys
chrCounter = 0
for line in sys.stdin.readline():
chrCounter += len(line)
print(chrCounter)
然后我尝试通过以下方式测试该程序
python3 counter.py < counter.py
答案只是第一行“import sys”的长度。事实上,程序只从标准输入中读取第一行,并丢弃其余的。
如果我用 sys.stdin.read() 代替 sys.stdin.readline 就可以了
import sys
print(len(sys.stdin.read()))
然而,很明显,该程序不适合大输入。请给我一个优雅的解决方案。谢谢你!
更简单:
for line in sys.stdin:
chrCounter += len(line)
类似文件的对象sys.stdin
自动逐行迭代;如果你打电话.readline()
在上面,您只读取第一行(并逐个字符地迭代该行);如果你打电话read()
,然后您将把整个输入读入单个字符串并迭代that逐个字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)