Print Zeilenumbruch

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
PeterL
User
Beiträge: 95
Registriert: Samstag 6. März 2021, 18:39

Hallo Leute,

so sieht mein Code aus.
hallo="Hallo "

name=input("Dein Name")+ " "
anzahl=input("wie oft soll ich dich begruesßen ?")

s= (hallo + name) *anzahl+ " "
print s

Die Ausgabe erfolgt in einer langen Reihe.
Ich möchte die Ausgabe gerne untereinander angezeigt bekommen.
Ich habe schon lange in Internet gesucht, leider erhalte ich nur
Fehlermeldungen wenn ich die Beispiele ausprobiere
Ich benutze Python 2. Könnte mir jemand zeigen wie es geht.

Ich habe mit "\n" rumexperimentiert leider geht es nicht.
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Python 2 wird seit Anfang 2020 nicht mehr supported und das wurde bereits 10 Jahre vorher angekündigt. Mit anderen Worten: Python 2 ist tot. Gerade als Anfänger solltest du wirklich eine aktuelle Version von Python 3 verwenden. Du bekommst dort auch andere Möglichkeiten zum Beispiel bei der Formatierung von Strings.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@PeterL,

"\n" war schon richtig.
Du must aber auch den String "anzahl" in eine integer Variable konvertieren.
Denn nach der Eingabe liegt die Ziffernfolge zunächst als String vor. Daher kann man nicht damit multiplizieren.

Code: Alles auswählen

s= (hallo + " " + name + "\n") * int(anzahl)
Das Programm funktioniert so in Python 2. Aber es ist eigentlich nicht mehr sinnvoll das zu lernen.
Ich weiß, du benutzt wahrscheinlich WebTigerJython, aber es gibt da auch viele Alternativen für Python 3
PeterL
User
Beiträge: 95
Registriert: Samstag 6. März 2021, 18:39

Hallo Leute,

Danke für die Hilfe, mein Programm läuft.

Das ich Python 2 benutze liegt an dem sehr leicht verständlichen Buch, sowie die Python Umgebung. Ich habe für mich festgestellt das ich mit einem Buch besser Python lernen kann. Wenn es auch unter Python 3 leichte verständliche Anfänger Bücher gibt könnte ich natürlich Python 3 lernen. Es liegt aber auch an den verschiedenen Umgebungen. Die sind meistens alle Englisch, gerade die Fehlermeldungen sind dann nicht zu verstehen. in TigerJython sind teilweise die Fehlermeldungen auf deutsch.
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

rogerb hat geschrieben: Sonntag 22. August 2021, 17:34 Du must aber auch den String "anzahl" in eine integer Variable konvertieren.
Denn nach der Eingabe liegt die Ziffernfolge zunächst als String vor. Daher kann man nicht damit multiplizieren.
Du hast den Punkt mit "Python 2" übersehen. `input` macht aus einer eingegebenen Ziffer automatisch einen Integer-Wert. Und genau dieses Verhalten von `input` ist der Grund, warum man das in Python 2 tunlichst nicht benutzen sollte. `input` wird jeden jeden beliebigen eingegebenen Python-Code ausführen und das heißt im Endeffekt, dass ich eventuell sogar dem User die komplette Festplatte/SSD löschen könnte.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Code funktioniert so gar nicht, weil Du einen NameError bekommst, wenn Du einfach Deinen Namen eingibst. Auch dass Du irgendwo Leerzeichen " " anhängst, ist sehr fehleranfällig.
Für die Ausgabe würde ich gar nicht * benutzen, sondern eine Schleife, das ist in diesem Fall lesbarer.
Hier für Python3, wie man es normalerweise schreiben würde:

Code: Alles auswählen

name = input("Dein Name")
anzahl = int(input("wie oft soll ich dich begrüßen ?"))

for _ in range(anzahl):
    print(f"Hallo {name}!")
Antworten