3

InterviewStreetチャレンジの場合、キーボードからの10,000文字の文字列入力に対応できる必要がありますが、10kの長さの単語をコピーしてローカルテストに貼り付けると、1,000文字程度で途切れます。

Pythonの公式の制限は何ですか?そして、これを変更する方法はありますか?

みんなありがとう

課題は次のとおりです。

http://www.interviewstreet.com/recruit/challenges/solve/view/4e1491425cf10/4edb8abd7cacd

4

3 に答える 3

8

10kの長い単語に改行が含まれていないという事実を確信していますか?


raw_input([prompt])

プロンプト引数が存在する場合、末尾の改行なしで標準出力に書き込まれます。次に、この関数は入力から行を読み取り、それを文字列に変換して(末尾の改行を削除して)、それを返します。EOFが読み取られると、EOFErrorが発生します。

..。

readlineモジュールがロードされている場合、raw_input()はそれを使用して、複雑な行編集および履歴機能を提供します。

によって返されるバッファの上限は(Pythonで)ありません。また、 stdinraw_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
于 2011-12-12T02:13:50.277 に答える
5

私はこれと同じ経験をしましたが、モジュールraw_inputをインポートしない場合、Pythonは入力の長さを制限していることがわかりました。readlineモジュールをインポートするreadlineと、制限が解除されました(または、少なくとも、使用していたテキストが正常に機能する場所まで大幅に引き上げられました)。これはPythonを搭載した私のMacにありました2.7.15

于 2018-12-20T14:57:45.763 に答える
0

これは課題の一部だと思います。よくある質問は、raw_input()が最適なアプローチではない可能性があることを示唆しています。

最も一般的な(おそらくナイーブな)方法を以下に示します。(...)

実際、システムの入出力の処理に役立つPython標準モジュールがあります。

于 2011-12-12T03:05:16.443 に答える