Abfrage und Wiedergeben

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
Dembrix
User
Beiträge: 3
Registriert: Mittwoch 21. Februar 2018, 10:19

Mittwoch 21. Februar 2018, 10:27

Leute ich hab ein Problem, ich bin ein Anfänger in Python und wollte mit was einfachem beginnen.
Leider wird mir bei dem zweiten print ein Fehler angezeigt, Invalid Syntax, was mache ich Falsch?





n = input("Was ist dein Name? ")
a = input("Wie alt bist du? ")
f = input("Was ist deine lieblingsfarbe? ")
h = input("Was ist dein Hobby? ")



print ("Dein Name ist also ") print"n" print(", du bist") print"a" print(" Jahre alt, magst die Farbe") print"f" ,print(" und dein Hobby ist") print"h" print("?")
Benutzeravatar
/me
User
Beiträge: 3212
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mittwoch 21. Februar 2018, 10:58

Bitte zitiere deinen Code korrekt. Einrückungen und Zeilenumbrüche sind wichtig in Python. Du solltest auch die von dir verwendete Python-Version angeben.

Du musst nur hier im Editor den Code markieren und dann in der Box "Code auswählen" den Eintrag "PY (Python)" anklicken.

Falls dein Code allerdings wirklich auch im Editor so aussehen sollte wie er hier aktuell angezeigt wird, dann ist am Code einiges aufzuräumen. Warum verwendest du print mal mit Klammern und mal ohne? Warum glaubst du, dass print "n" nicht den Buchstaben n, sondern die Variable n ausgeben sollte?
Dembrix
User
Beiträge: 3
Registriert: Mittwoch 21. Februar 2018, 10:19

Mittwoch 21. Februar 2018, 11:22

Ok tut mir leid bin neu hier :D Ich benutze die Version 3.6.4, ich hab den code jetzt etwas verändert, aber geht immer noch nicht. Kann mir einer von euch sagen wo der Fehler liegt?



n = input("Was ist dein Name? ")
a = input("Wie alt bist du? ")
f = input("Was ist deine lieblingsfarbe? ")
h = input("Was ist dein Hobby? ")

sys.stdout.write("Du heißt also" (n)", bist"(a)" Jahre alt, magst die Farbe"(f)" und dein Hobby ist"(h)"?")


tut mir leid, blicke da mit der Codebox nicht richtig Durch
Benutzeravatar
/me
User
Beiträge: 3212
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mittwoch 21. Februar 2018, 12:15

Dembrix hat geschrieben:

Code: Alles auswählen

sys.stdout.write("Du heißt also" (n)", bist"(a)" Jahre alt, magst die Farbe"(f)" und dein Hobby ist"(h)"?")
Mit welchem Buch oder Tutorial lernst du? Der Weg über sys.stdout ist definitiv nicht nötig. Unabhängig davon möchte die write-Methode genau einen Parameter haben. Du versuchst aber irgendetwas völlig kurioses.
"Du heißt also" (n) führt nicht dazu, dass hier Texte zu einem String zusammengesetzt werden. Es sind auch nicht mehrere Parameter (was hier ohnehin falsch wäre), denn dazu fehlt ein trennendes Komma. Die Klammern führen dazu, dass "Du heißt also" als Funktion betrachtet wird, die mit dem Parameter n aufgerufen wird. Vermutlich wolltest du einfach alles als String verketten: "Du heißt also "+ n + "bist " + a ...

Schön ist das aber auch nicht. Was du eigentlich möchtest ist eher so etwas:

Code: Alles auswählen

print("Du heißt also", n, ", bist", a, "Jahre alt, magst die Farbe", f, "und dein Hobby ist", h, "?")
Wirklich gut lesbar ist das immer noch nicht, daher kann man auch ein String-Template mit der format-Methode einsetzen.

Code: Alles auswählen

print('Dein Name ist also {0}, du bist {1} Jahre alt, magst die Farbe {3} und dein Hobby ist {2}?'.format(n, a, h, f))
Wofür die Zahlen in den geschweiften Klammern stehen, lasse ich dich jetzt selber herausfinden.

Alternativ kann man es auch etwas deskriptiver machen:

Code: Alles auswählen

print('Dein Name ist also {name}, du bist {alter} Jahre alt, magst die Farbe {farbe} und dein Hobby ist {hobby}?'.format(name=n, alter=a, hobby=h, farbe=f))
Das erlaubt dann auch ein sehr schnelles unkompliziertes Umstellen der Ausgabe

Code: Alles auswählen

print('Dein Name ist also seit {alter} Jahren immer noch {name}, du magst die Farbe {farbe} und dein Hobby ist {hobby}?'.format(name=n, alter=a, hobby=h, farbe=f))
Dembrix
User
Beiträge: 3
Registriert: Mittwoch 21. Februar 2018, 10:19

Mittwoch 21. Februar 2018, 12:53

Gut vielen Dank! Bin wie gesagt ein Anfänger und komplett neu in diesem Berreich :D
Benutzeravatar
/me
User
Beiträge: 3212
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mittwoch 21. Februar 2018, 22:43

Dembrix hat geschrieben:Bin wie gesagt ein Anfänger und komplett neu in diesem Berreich :D
Das ist ja kein Problem, wir helfen ja gerne. Mich hatte halt nur interessiert durch das Studium welchen Tutorials man auf solchen Code kommt.
Antworten