標準入力から行を読み取る次の2つの方法の違いは(もしあれば)raw_input()
とsys.stdin.readline()
ですか?そして、これらの方法のどちらが他の方法よりも好ましい場合は?
raw_input() は、オプションのPrompt
引数を取ります。また、返される文字列から末尾の改行文字を削除し、 readline モジュールがロードされている場合に履歴機能をサポートします。
readline() はオプションのsize
引数を取り、末尾の改行文字を削除せず、履歴を一切サポートしません。
彼らは同じことをしないので、彼らは実際に交換可能ではありません。個人的には、raw_input()
を使用してユーザー入力を取得し、readline()
を使用してファイルから行を読み取ることを好みます。
「しかし、多くのPython初心者および教育者の観点から、sys.stdin.readline()の使用には以下の問題があります。
「raw_input」という名前と比較すると、「sys.stdin.readline()」という名前は不格好で洗練されていません。
「sys」および「stdin」という名前は、ほとんどの初心者にとって意味がありません。初心者は、主に関数の機能に関心があり、パッケージ構造内の場所ではありません。意味の欠如により、覚えが難しくなります。「sys.stdin.readline()」または「stdin.sys.readline()」ですか?プログラミングの初心者にとって、一方を他方よりも優先する明確な理由はありません。対照的に、print、input、raw_input、openなどの単純で直接的な名前の関数は覚えやすいです。」ここから: http://www.python.org/dev/peps/pep-3111/