Keine Ideen um das Gelernte umzusetzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
problembär

mcdaniels hat geschrieben:Immerwieder erwische ich mich dabei, wie ich von Tk bzw wxPython magisch angezogen werden.
Ich würde so einer Anziehungskraft nachgeben, bzw. nachgehen.
BlackJack

@lunar: Weitere Alternative:

Code: Alles auswählen

sys.stdout.writelines(iter(sys.stdin.readline, '42\n'))
Wobei ich bei meiner Lösung auch nach der 42 noch fleissig weiter gelesen habe, denn wenn in der Beispieleingabe nach der 42 noch eine Zahl kommt, kann man ja auch nicht ausschliessen, dass da noch mehr kommt das vielleicht den Puffer füllt und dann blockiert das Prüfprogramm am Ende wenn mein Programm die Daten nicht mehr abholt.
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Halli hallo,
na da gehts ja ordentlich rund :). Unglaublich, wie kurz und bündig man das lösen kann, wenn man weiß, auf welches Modul man zurück greifen kann bzw. Gurustatus hat ;)
@problembär:
Ich würde so einer Anziehungskraft nachgeben, bzw. nachgehen.
Hilft ja nix, wenn ich die Basics noch nicht in und auswendig kann.

LG
Daniel
Zuletzt geändert von mcdaniels am Donnerstag 12. April 2012, 19:22, insgesamt 1-mal geändert.
lunar

@BlackJack: An ".writelines()" hatte ich nicht gedacht :(

Ich glaube nicht, dass das Blockieren des Puffers ein Problem sein sollte. Das Prüfprogramm mag blockieren, läuft aber spätestens dann weiter, wenn Dein Programm sich nach der ersten "42" beendet, und dabei seine Standardeingabe schließt. Der blockierende Aufruf von "write()" gibt dann EPIPE zurück, und ein anständig geschriebenes Programm sollte das eigentlich abfangen. Zudem müsste das Prüfprogramm schon eine ganze Menge Zahlen schreiben, um den Pipe-Puffer zu füllen :)
Antworten