Seite 1 von 1

Standard Input und input()

Verfasst: Sonntag 19. Dezember 2021, 12:23
von mm96
Hi Leute,
ich les grad etwas über den Standard Input, dabei hab ich folgendes Problem:

Nach meinem Verständnis sollte der Befehl

Code: Alles auswählen

s = input('Eingabe: ')
dasselbe liefern wie

Code: Alles auswählen

import sys
print('Eingabe: ', end='')	# end='' um die neue Zeile zu unterdrücken
s = sys.stdin.readline()
Wenn ich das ausführe, bekomme zuerst die Zeile vom input(), wo ich z. B. 5 eingebe.
Dann folgt allerdings nicht der nächste print-Befehl, sondern es wird zuerst die Tastatureingabe abgegriffen,
erst danach wird dann noch der print-Befehl ausgeführt.
Ich vermute, es hat etwas mit dem end='' zu tun, denn wenn ich das weglasse funktioniert es, allerdings eben
mit der zusätzlichen neuen Zeile...

Weiß da jemand die Ursache davon?

Liebe Grüße und vielen Dank!

Re: Standard Input und input()

Verfasst: Sonntag 19. Dezember 2021, 12:27
von Sirius3
Das hat nichts mit der Standardeingabe zu tun, sondern mit der Standardausgabe. Ausgegeben wird erst, wenn eine neue Zeile anfängt. Außer man sagt das explizit:

Code: Alles auswählen

print('Eingabe: ', end='', flush=True)
s = sys.stdin.readline()

Re: Standard Input und input()

Verfasst: Montag 27. Dezember 2021, 20:45
von mm96
Super, vielen Dank!