Kann mir jemand eine kurze Anleitung in stdin und stdout in Python 3?
Ich weiß, das klingt wie etwas, was ich kann google, aber die Wahrheit ist, dass ich nicht finden oder nicht verstehen, was die sehr wenige Python-3-Quellen erklärt.
So, hier sind meine Fragen:
- Ist
input()
diestdin
Funktion in Python 3? Bedeutet das, dass, wenn Sie öffnen Sie Ihren filename.py Programm, dasstdin
ist, was der Benutzer eingibt? - Ist
print()
diestdout
Funktion in Python 3, oder haben Sie, um eine Datei zu schreiben? - Für die Spotify-puzzle, ist sagt, dass "Input von stdin Lesen". Was sollte meine Datei include
stdin
undstdout
?
Update:
Bedeutet das, dass ich kann verwenden:
import sys
unfmtdDate = str(sys.stdin.read())
...statt...
unfmtdDate = str(input())
?
- Was meinst du mit 'stdin Funktion" und "stout-Funktion'? Stdin und stout sind Dateien. Nicht Funktionen. Diese Dateien verfügen über Methoden zum Lesen oder schreiben. Können Sie näher erläutern, was du meinst?
- Ich meine, wie schreibst du die Dateien, und ist es möglich sich bei diesen Dateien?
- Die Antworten sind: 1. "Ja und ja". 2. "Ja". 3. "Huh? Diese Frage macht keinen Sinn." Update: "ja, und Nein."
- "Heißt das, dass ich verwenden kann...?" Wenn Sie es versucht, was konntest du beobachten?
- Es sagt, ich kann nicht, verwenden Sie die read () - Funktion, obwohl ein paar der Jungs hier hat mir gesagt ich könnte. Es wäre auch unmöglich, testen Sie mein Programm, da es nicht promt
Du musst angemeldet sein, um einen Kommentar abzugeben.
stdin
undstdout
sind Datei-wie Objekte von der OS. Im Allgemeinen, wenn ein Programm ausgeführt wird, in einer interaktiven Sitzungstdin
ist der Tastatur-Eingaben undstdout
ist der Benutzer tty, aber die Schale kann verwendet werden, um Sie umzuleiten, die aus normalen Dateien oder Pipe Ausgabe und Eingabe für andere Programme.input()
wird verwendet, um den Benutzer auffordern, für die typisierten input. Im Falle von so etwas wie einem puzzle-Programmierung, es ist in der Regel davon ausgegangen, dassstdin
umgeleitet wird aus einer Daten-Datei, und wenn das input-format gegeben ist, ist man in der Regel am besten zu nutzensys.stdin.read()
eher als Aufforderung für die Eingabe mitinput()
.input()
ist gedacht für interaktive Benutzereingaben, es kann eine Eingabeaufforderung angezeigt (auf sys.stdout) und verwenden die GNU readline-Bibliothek (falls vorhanden) damit die Zeile editieren, etc.print()
ist, in der Tat, die häufigste Art des Schreibens zustdout
. Es gibt keine Notwendigkeit, etwas besonderes zu tun, um geben Sie den Ausgabe-stream.print()
schreibtsys.stdout
wenn keine Alternative Datei angegeben ist, um es als einefile=
parameter.Wenn Sie führen Sie Ihre Python-Programm,
sys.stdin
ist das file-Objekt mit den standard-input (STDIN),sys.stdout
ist das file-Objekt für die standard-Ausgabe (STDOUT), undsys.stderr
ist das file-Objekt für die standard-Fehler (STDERR).Irgendwo in der Dokumentation, die Sie sehen Verweise auf den standard-input, standard output oder standard error", es bezieht sich auf diese Datei-handles. Sie können direkt auf diese zugreifen (
sys.stdout.write(...)
,sys.stdin.read()
etc.) oder verwenden Sie Komfort-Funktionen, die mit diesen streams, wieinput()
undprint()
.Für die Spotify-puzzle, der einfachste Weg, um die Eingabe wäre so etwas wie dieses:
Nachdem diese zwei Zeilen der input für dein Programm ist jetzt in der str
data
.input()
liest von der standard-Eingabe (genanntstdin
kurz in einigen Kontexten), ja. Keine Sprache, die ich kenne, hat eine Funktion namensstdin
in der standard-Bibliothek. Wenn du das Programm in der üblichen Weise, welche die Benutzer geliefert wird, um die standard-Eingabe, ja. Das ist es, was "standard-Eingabe" bedeutet. Es ist ein separates Programm, das füttern, was der Benutzer eingibt, um standard-Eingabe (und ein paar andere praktische Dinge, wie die Deutung der backspace-Taste). Ihr Skript ist nicht das, was erstellt das Fenster, dass der text eingegeben.sys.stdin
(D. H., der Wertstdin
definiert in dersys
- Modul) ist ein Objekt, dass stellt die standard-Eingabe. Diese ist so bereitgestellt, dass Sie es verwenden können in Kontexten, in denen Sie erwarten, geben Sie "Datei", um die Eingabe Lesen vom Benutzer anstelle einer Datei.print()
schreibt (standardmäßig aktiviert; Sie können einefile
Schlüsselwort-argument, dies zu ändern), um die standard-Ausgabe (genanntstdout
kurz in einigen Kontexten), ja. Alle die oben genannten Einschränkungen gelten:stdout
ist nicht eine Funktion in irgendeiner Sprache, die ich je gehört habe, und ein völlig anderes Programm verursacht tatsächlich die Ausgabe des Skripts auf dem Bildschirm angezeigt in einer ziemlich 80x24 weißer-text-auf-schwarz-hintergrund (oder wie auch immer Sie es konfiguriert haben) ein.sys.stdout
ist ein Objekt, dass stellt die standard-Ausgabe verwendet, ähnlich wiesys.stdin
. Sie können es verwenden, explizit mit derprint
Funktion, aber es gibt keinen Punkt: es ist die Standardeinstellung.Das problem Spezifikation bedeutet "verwenden Sie die
input()
Funktion zum empfangen von Eingabe".input()
nicht Lesen aus einer angegebenen Datei (es gibt Möglichkeiten, um zu verursachen, dass der standard-Eingabe in eine Datei, aber wieder, das ist in der Regel externen Programm). Es ist nicht dazu gedacht, genau symmetrisch mit derprint()
Funktion. Nachdem alle, es zeigt eine Eingabeaufforderung an,... würde keinen Sinn machen, um eine Eingabeaufforderung angezeigt, während das Lesen aus einer Datei finden?Vom die Python-Dokumentation
print
:Ja.
Ja.
Können Sie entweder.
Verwenden Sie einfach
import sys
man diesys.stdin
undsys.stdout
- Dateien. Sie brauchen nicht den import, wenn Sie dieinput
undprint
built-in Funktionen statt.stout
?stein
? Noch ein Bier!