Ich weiß, dass dies nach etwas klingt, was ich googlen kann, aber die Wahrheit ist, dass ich nicht verstehe oder nicht verstehe, was die wenigen Python 3-Quellen erklären.
Hier sind meine Fragen:
input()
die Funktion stdin
in Python 3? Bedeutet das, dass, wenn Sie Ihr Programm "filename.py" öffnen, stdin
das ist, was der Benutzer eingibt? print()
die Funktion stdout
in Python 3, oder müssen Sie in eine Datei schreiben? stdin
und stdout
? Aktualisierung: Bedeutet das, dass ich verwenden kann:
%Vor%... statt ...
%Vor%?
stdin
und stdout
sind dateiähnliche Objekte, die vom Betriebssystem bereitgestellt werden. Im Allgemeinen, wenn ein Programm in einer interaktiven Sitzung ausgeführt wird, ist stdin
Tastatureingabe und stdout
ist das Benutzer-tty, aber die Shell kann verwendet werden, um sie von normalen Dateien oder piped Ausgabe von und Eingabe in andere Programme umzuleiten.
input()
wird verwendet, um den Benutzer zur Eingabe von Eingaben aufzufordern. Bei so etwas wie einem Programmierpuzzle wird normalerweise angenommen, dass stdin
von einer Datendatei umgeleitet wird, und wenn das Eingabeformat angegeben wird, ist es am besten, sys.stdin.read()
zu verwenden, anstatt eine Eingabe mit input()
anzufordern. input()
ist für interaktive Benutzereingaben gedacht, kann eine Eingabeaufforderung (auf sys.stdout) anzeigen und die GNU readline-Bibliothek (falls vorhanden) verwenden, um die Bearbeitung von Zeilen usw. zu ermöglichen.
print()
ist tatsächlich die gebräuchlichste Schreibweise für stdout
. Sie müssen nichts Besonderes tun, um den Ausgabestream festzulegen. print()
schreibt in sys.stdout
, wenn keine alternative Datei als file=
-Parameter angegeben wird.
Wenn Sie Ihr Python-Programm ausführen, ist sys.stdin
das mit dem Standard verbundene Dateiobjekt Eingabe (STDIN), sys.stdout
ist das Dateiobjekt für die Standardausgabe (STDOUT) und sys.stderr
ist das Dateiobjekt für den Standardfehler (STDERR).
Überall in der Dokumentation werden Verweise auf Standardeingabe, Standardausgabe oder Standardfehler angezeigt. Dies bezieht sich auf diese Dateihandles. Sie können direkt auf sie zugreifen ( sys.stdout.write(...)
, sys.stdin.read()
usw.) oder Komfortfunktionen verwenden, die diese Streams verwenden, wie input()
und print()
.
Beim Spotify-Rätsel ist der einfachste Weg, die Eingabe zu lesen, etwa Folgendes:
%Vor% Nach diesen zwei Zeilen befindet sich die Eingabe für Ihr Programm jetzt in der str data
.
Aus der Python-Dokumentation für print
:
Das Datei Argument muss ein Objekt mit einer
write(string)
Methode sein; Wenn es nicht vorhanden ist oderNone
, wirdsys.stdout
verwendet. Die Ausgabepufferung wird durch Datei bestimmt. Verwenden Siefile.flush()
, um zum Beispiel das sofortige Erscheinen auf einem Bildschirm sicherzustellen.
Ist input () die stdin-Funktion in Python 3? Bedeutet das, dass wenn Sie Ihr filename.py-Programm öffnen, die stdin das ist, was der Benutzer eingibt?
input()
liest von der Standardeingabe (in einigen Kontexten kurz stdin
genannt), ja. Keine Sprache, die ich kenne, hat eine Funktion namens stdin
in der Standardbibliothek. Wenn Sie das Programm auf die übliche Weise ausführen, wird das, was der Benutzertyp der Standardeingabe liefert, ja. Das bedeutet "Standard-Eingabe". Es gibt ein separates Programm, das das eingibt, was der Benutzer zur Standardeingabe eintippt (und ein paar andere praktische Dinge wie das Interpretieren der Rücktaste tut). Ihr Skript erstellt nicht das Fenster , in das der Text eingegeben wird.
sys.stdin
(d. h. der im Modul stdin
definierte Wert sys
) ist ein Objekt , das die Standardeingabe darstellt. Dies wird bereitgestellt, damit Sie es in Kontexten verwenden können, in denen Sie "eine Datei" angeben müssen, damit die Eingabe anstelle einer Datei vom Benutzer gelesen wird.
Ist print () die stdout-Funktion in Python 3, oder müssen Sie in eine Datei schreiben?
print()
schreibt (standardmäßig; Sie können ein file
Schlüsselwortargument angeben, um dies zu ändern) in die Standardausgabe (ja, in einigen Kontexten stdout
), yes. Alle oben genannten Einschränkungen gelten: stdout
ist keine Funktion in irgendeiner Sprache, von der ich jemals gehört habe, und ein völlig separates Programm bewirkt, dass die Ausgabe Ihres Skripts auf dem Bildschirm in einem hübschen 80x24 Weiß-Text-Format angezeigt wird. on-black-background (oder wie Sie es konfiguriert haben) Box.
sys.stdout
ist ein Objekt , das für die Standardausgabe steht und ähnlich wie sys.stdin
verwendet wird. Sie können es explizit mit der Funktion print
verwenden, aber es gibt keinen Grund: Es ist der Standardwert.
Beim Spotify-Puzzle heißt es: "Input wird von stdin gelesen". Was sollte meine Datei von stdin und stdout enthalten?
Die Problemspezifikation bedeutet "verwende die Funktion input()
, um eine Eingabe zu erhalten".
Ist
input()
die Funktionstdin
in Python 3?
Ja.
Bedeutet das, dass, wenn Sie Ihr Programm
filename.py
öffnen, dasstdin
das ist, was der Benutzer eingibt?
Ja.
Ist
print()
die Funktionstdout
in Python 3, oder müssen Sie in eine Datei schreiben?
Sie können beides verwenden.
Beim Spotify-Puzzle heißt es: "Input wird von stdin gelesen". Was sollte meine Datei von
stdin
undstdout
enthalten?
Verwenden Sie einfach import sys
, um zu den Dateien sys.stdin
und sys.stdout
zu gelangen. Sie benötigen den Import nicht, wenn Sie stattdessen die integrierten Funktionen input
und print
verwenden.
Tags und Links python python-3.x stdout stdin