Seite 1 von 1

Print Zeilenumbruch

Verfasst: Sonntag 22. August 2021, 17:03
von PeterL
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.

Re: Print Zeilenumbruch

Verfasst: Sonntag 22. August 2021, 17:28
von /me
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.

Re: Print Zeilenumbruch

Verfasst: Sonntag 22. August 2021, 17:34
von rogerb
@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

Re: Print Zeilenumbruch

Verfasst: Sonntag 22. August 2021, 17:52
von PeterL
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.

Re: Print Zeilenumbruch

Verfasst: Sonntag 22. August 2021, 17:59
von /me
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.

Re: Print Zeilenumbruch

Verfasst: Sonntag 22. August 2021, 18:34
von Sirius3
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}!")