对于一个 InterviewStreet 挑战,我们必须能够容纳从键盘输入的 10,000 个字符的字符串,但是当我将一个 10k 长的单词复制/粘贴到我的本地测试中时,它会在 1000 左右时中断。
Python的官方限制是什么?有没有办法改变这种情况?
多谢你们
以下是挑战:
http://www.interviewstreet.com/recruit/challenges/solve/view/4e1491425cf10/4edb8abd7cacd
对于一个 InterviewStreet 挑战,我们必须能够容纳从键盘输入的 10,000 个字符的字符串,但是当我将一个 10k 长的单词复制/粘贴到我的本地测试中时,它会在 1000 左右时中断。
Python的官方限制是什么?有没有办法改变这种情况?
多谢你们
以下是挑战:
http://www.interviewstreet.com/recruit/challenges/solve/view/4e1491425cf10/4edb8abd7cacd
您确定您的10k长单词不包含换行符吗?
raw_input ([提示])
如果提示参数存在,则将其写入标准输出,不带尾随换行符。然后该函数从输入中读取一行,将其转换为字符串(去除尾随的换行符),然后返回。读取 EOF 时,会引发 EOFError。
...
如果readline模块已加载,则 raw_input() 将使用它来提供精细的行编辑和历史功能。
返回的缓冲区没有最大限制(在 python 中) ,并且当我测试输入到标准raw_input
输入的一些大长度时,我无法重现您的结果。我试图在网上搜索有关此的信息,但找不到任何可以帮助我回答您的问题的信息。
我的测试
:/tmp% python -c 'print "A"*1000000' | python -c 'print len (raw_input ())';
1000000
:/tmp% python -c 'print "A"*210012300' | python -c 'print len (raw_input ())';
210012300
:/tmp% python -c 'print "A"*100+"\n"+"B"*100' | python -c 'print len (raw_input ())';
100
我有同样的经历,发现raw_input
如果你不导入readline
模块,python 会限制输入的长度。一旦我导入了readline
模块,它就解除了限制(或者至少将它显着提高到我使用的文本工作正常的地方)。这是在我的带有 Python 的 Mac 上2.7.15
。