Python übungsaufgabe?
Ich muss ein Programm in Python schreiben, welcher den Benutzer nach seinen Alter auffordert. Ist die Person jünger wie 12 soll die Meldung "Du bist noch ein Kind" kommen, ist die Person zwischen 13 und 17 Jahre alt, soll die Meldung kommen "Du bist ein Teenie", wenn die Person über 18 ist soll die Meldung "Du bist erwachsen kommen"
Mein Ansatz:
alter=(input("Gib dein Alter ein"))
if alter==12<alter:
print("Du bist noch ein Kind")
elif alter==13-17:
print("Du bist ein Tennie")
elif alter==18>alter:
print("Du bist erwachsen")
3 Antworten
Der Ansatz ist wirklich toll. Ein paar Fehler gibt es aber:
Statt
if alter==12<alter:
musst du nur
if alter < 12:
Die Leerzeichen sind sehr wichtig!!!
und bei
elif alter==13-17:
reicht einfach
elif alter > 12:
dann musst du beim letzten halt nur
elif alter > 17:
viel Spaß noch beim Programmieren ;)
FormulaSun12
Kleine Korrektur: Anstatt elif alter > 12, nimm elif alter < 18, sonst wird dir auch bei Erwachsenen angezeigt, dass sie Teenies sind. Python (oder eigentlich jede Programmiersprache) nimmt immer den ersten Zweig, der wahr ist. Da z.B. ein Alter von 30 Jahren auch größer als 12 ist, wird also der Code von 12 ausgeführt.
Mein Ansatz:
Passt auch fast, du solltest nur zwei Dinge überarbeiten:
alter=(input("Gib dein Alter ein"))
Am Besten das ganze noch zu einer Zahl (int) konvertieren, um damit besser arbeiten zu können. Dann:
if alter==12<alter:
elif alter==13-17:
elif alter==18>alter:
Diese Bedingungen ergeben so keinen Sinn, da sie nicht die Aufgabe erfüllen.
Nehmen wir mal das erste:
alter == 12 < alter
Das wird dir immer false ausgeben. < hat eine höhere Gewichtung, also wird das ganze von Python in dieser Reihenfolge interpretiert:
alter == (12 < alter)
12 < alter wird hierbei dann entweder True oder False ausgeben.
Dann wird aber noch das Ergebnis mit alter verglichen ... Da gibt es nur zwei Szenarien, wie das "True" werden kann:
>>> 0 == False
True
>>> 1 == True
True
Analog passiert das beim letzten.
Für alter==13-17 vergleichst du alter auch nicht, ob alter in dem Intervall ist, sondern ob alter == - 4
Überlege dir nochmal, was du hier GENAU vergleichen sollst.
Guter Ansatz, allerdings musst du aufpassen, was die Bedingungen angeht.
12 < alter ist z.B. wahr wenn alter = 13. Sollte aber genau anders herum sein.
13-17 ist -4, das musst du anders lösen.
Bei if oder elif kommt danach ein Wahrheitswert. Der kann auch aus meheren Bestandteilen sein.
Hier wäre es z.B.
elif alter >= 13 and alter <= 17
Bei den anderen musst du übrigens ebenfalls schauen, dass du dich für den Vergleich == oder > entscheidest, beides ergibt so keinen Sinn.
und wie kann ich die 14-17 lösen?