Python übungsaufgabe?

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

Woher ich das weiß:eigene Erfahrung
daCypher  29.11.2022, 09:27

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.

1
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.

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

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.

Woher ich das weiß:Berufserfahrung – Programmierer
gilam 
Fragesteller
 28.11.2022, 19:48

und wie kann ich die 14-17 lösen?

0
Ecaflip  28.11.2022, 19:52
@gilam

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.

0