web-dev-qa-db-ja.com

誰かが私にstdinとstdoutの簡単なチュートリアルをPython 3で教えてもらえますか?

私はこれがグーグルできるもののように聞こえることを知っています、しかし真実は私が非常に少数のPython 3つの情報源が説明するものを見つけないか理解しないということです。

だからここに私の質問があります:

  • input()はPython 3のstdin関数ですか?filename.pyプログラムを開くと、stdinはユーザーは何を入力しますか?
  • print()はPython 3のstdout関数ですか、それともファイルに書き込む必要がありますか?
  • Spotifyパズルの場合、「入力はstdinから読み取られます」と表示されます。ファイルにはstdinstdoutの何を含める必要がありますか?

更新:それは私が使用できることを意味します:

import sys
unfmtdDate = str(sys.stdin.read())

...の代わりに...

unfmtdDate = str(input())

11
Martin Hallén

stdinstdoutは、OSによって提供されるファイルのようなオブジェクトです。一般に、プログラムがインタラクティブセッションで実行される場合、stdinはキーボード入力であり、stdoutはユーザーのttyですが、シェルを使用して、通常のファイルまたはからのパイプ出力からそれらをリダイレクトできます。そして他のプログラムへの入力。

input()は、入力された入力をユーザーに求めるために使用されます。プログラミングパズルのようなものの場合、通常はstdinがデータファイルからリダイレクトされると想定されており、入力形式が指定されている場合は、プロンプトを表示するよりもsys.stdin.read()を使用するのが通常は最善です。 input()で入力します。 input()はインタラクティブなユーザー入力を目的としており、プロンプト(sys.stdout上)を表示し、GNU readlineライブラリ(存在する場合)を使用して行編集などを可能にします。 。

print()は、実際、stdoutに書き込む最も一般的な方法です。出力ストリームを指定するために特別なことをする必要はありません。 print()は、sys.stdoutパラメータとして代替ファイルが指定されていない場合、file=に書き込みます。

11
Wooble

Pythonプログラムを実行すると、 _sys.stdin_ は標準入力(STDIN)に接続されたファイルオブジェクト、_sys.stdout_はのファイルオブジェクトです標準出力(STDOUT)であり、_sys.stderr_は標準エラー(STDERR)のファイルオブジェクトです。

ドキュメント内のどこでも、標準入力、標準出力、または標準エラーへの参照があり、これらのファイルハンドルを参照しています。それらに直接アクセスするか(sys.stdout.write(...)sys.stdin.read()など)、input()print()などのこれらのストリームを使用する便利な関数を使用できます。

Spotifyパズルの場合、入力を読み取る最も簡単な方法は次のようになります。

_import sys
data = sys.stdin.read()
_

これらの2行の後、プログラムの入力はstr dataにあります。

2
Andrew Clark

から Python printのドキュメント

file引数は、write(string)メソッドを持つオブジェクトである必要があります。存在しない場合、またはNoneの場合、_sys.stdout_が使用されます。出力バッファリングは、fileによって決定されます。 file.flush()を使用して、たとえば、画面にすぐに表示されるようにします。

0
Greg Hewgill

input()はPython 3のstdin関数ですか?

はい。

それは、_filename.py_プログラムを開いたときに、ユーザーが入力するのはstdinであることを意味しますか?

はい。

print()はPython 3のstdout関数ですか、それともファイルに書き込む必要がありますか?

どちらでも使用できます。

Spotifyパズルの場合、「入力はstdinから読み取られます」と表示されます。ファイルにはstdinstdoutの何を含める必要がありますか?

_import sys_を使用して、_sys.stdin_ファイルと_sys.stdout_ファイルにアクセスします。代わりにinputおよびprint組み込み関数を使用する場合は、インポートは必要ありません。

0
Mike DeSimone