Eingabe wird nicht als string erkannt

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.
Antworten
linn29
User
Beiträge: 3
Registriert: Dienstag 20. Oktober 2020, 16:13

Hey,

ich habe ein Programm, bei dem am Anfang eine Buchstaben- und Zeichenfolge eingegeben werden soll, um diese dann weiterzuverarbeiten.

Der Code sieht so aus:

Code: Alles auswählen

while True:
    text= input()
    if text.endswith(":"):
        break
    else:
         text = str(text + ":")
print(text)
Die Zeichenfolge wird per copy-paste in das input() eingefügt. Da die Zeichenfolge auch Zeilenumbrüche beeinhaltet, bekam ich den Tipp, als Bestätigung für das Ende der Eingabe nicht eine Leerzeile zu nehmen(da sonst die while-Schlaufe bei dem ersten Zeilenumbruch beendet wird, obwohl die Zeichenfolge noch nicht zuende ist).
Ich habe mich dann für einen Doppelpunkt entschieden (da dieses Zeichen mit Sicherheit nicht in der Zeichenfolge vorkommt), der nach dem Einfügen per copy-paste noch manuell hinzugefügt wird. Erst nach dem Doppelpunkt soll die Variable text definiert sein und das weitere Programm starten.

Als Zwischenkontrolle hatte ich die Idee, dass er mir die Variable text einmal zeigen soll (und hatte mir erhofft, dass somit die eingefügte Zeichenfolge noch einmal gezeigt wird), bevor das Programm weiterläuft. Dabei ist mir aufgefallen, dass text immer nur der Doppelpunkt ist und die eingefügte Zeichenfolge überhaupt nicht verwendet wird, was im weiteren Programm zu Fehlern führt.

Was ist an dem Code falsch, sodass unter der Variable text nicht die eingefügte Zeichenfolge, sondern nur der Doppelpunkt gespeichert wird? Oder unter welcher Variable könnte ich die Zeichenfolge weiterverwenden, wenn es nicht text ist?

Grüße
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Was hat Dein Code mit dem Code von __blackjack__ aus dem anderen Thread zu tun?

Code: Alles auswählen

    lines = list()
    while True:
        line = input()
        if not line:
            break
        lines.append(line + "\n")
    text = "".join(lines)
Wenn Du weißt, warum Du den Code geändert hast, dann sollte das Deine Frage auch beantworten.
Antworten