🏆

Aufgabe gelöst!

Sehr gut!

+30 XP


⚡ 0 XP
✅ 0 gelöst
🔥 0
⚖️

Vergleiche & Zuweisungen

Informatik · Python · Klassen 9–12 · PRIMM-Methode

Python Interaktiv Kl. 9–12
🎯 Worum geht's? Klasse 9–12 · 2 Unterrichtsstunden

Nach dieser Seite kannst du …

  • Vergleiche und logische Ausdrücke mit and, or, not auswerten
  • vorhersagen, welcher Zweig von if/elif/else ausgeführt wird
  • Kurzformen wie += und Bedingungsausdrücke lesen und schreiben
  • erklären, wann Python die rechte Seite von and/or gar nicht auswertet

Vorwissen: Variablen und Zuweisungen in Python

📝 Aufgaben

Jede Aufgabe hat fünf Schritte: Predict › Run › Investigate › Modify › Make. Wähle eine Aufgabe aus – oder nutze oben die Leiste „Aufgaben: 1, 2, 3 …“.

0
⚡ Gesammelte XP
0
✅ Aufgaben abgeschlossen
0
🔥 Streak (Tage)
–
🎯 Genauigkeit

📐 Das Wichtigste in Kürze

  • Vergleiche: == != < > <= >= liefern True oder False.
  • Logik: and (beide), or (mindestens einer), not (Umkehrung).
  • Kurzformen: x += 3 bedeutet x = x + 3 – ebenso -= *= //= %=. Ein x++ gibt es in Python nicht.
  • Bedingungsausdruck: "gerade" if x % 2 == 0 else "ungerade".
  • Mehrere Fälle: if … elif … else – der erste zutreffende Zweig gewinnt.

🏅 Zuletzt verdiente Badges

🔮 Predict
Aufgabe 1 – Vergleichsoperatoren

Jede Zeile gibt das Ergebnis eines Vergleichs aus.

a = 5 b = 8 c = 5 print(a == c) print(a != b) print(b <= a)

Was gibt Zeile 4 aus?

Was gibt Zeile 5 aus?

Was gibt Zeile 6 aus?

== prüft Gleichheit, != Ungleichheit, <= „kleiner oder gleich“.
▶️ Run – Ausdrücke auswerten

Gegeben: x = 10, y = 3, z = 10. Trage True oder False ein.

x = 10 y = 3 z = 10
AusdruckErgebnis
x == z
x != y
y > x
y <= 3
x % y == 1
Setze die Werte ein. % liefert den Rest der Division.
🔍 Investigate

Was ist der Unterschied zwischen = und ==?

Welchen Typ hat das Ergebnis eines Vergleichs?

✏️ Modify

Ergänze den Ausdruck: ist_gerade(n) soll True liefern, wenn n gerade ist.

🐍 Python – Modify
Eine Zahl ist gerade, wenn bei der Division durch 2 kein Rest bleibt.
🛠️ Make

Schreibe ist_im_bereich(x, minimum, maximum): True, wenn x zwischen den Grenzen liegt (einschließlich).

🐍 Python – Make
x muss zwei Bedingungen gleichzeitig erfüllen.
🔮 Predict
Aufgabe 2 – and, or, not

Gegeben sind zwei Wahrheitswerte.

p = True q = False print(p and q) print(p or q) print(not p or q)

Was gibt Zeile 3 aus?

Was gibt Zeile 4 aus?

Was gibt Zeile 5 aus?

not bindet stärker als or: not p or q bedeutet (not p) or q.
▶️ Run – Wahrheitstabelle

Gegeben: a = 4, b = 9, c = 4.

a = 4 b = 9 c = 4
AusdruckErgebnis
a == c and b > a
a > b or c == a
not (a == b)
a != c or b < 5
a % 2 == 0 and b % 2 == 0
Werte zuerst die Vergleiche aus, dann not, dann and und or.
🔍 Investigate

Was passiert bei False and … mit der rechten Seite?

Wann ist A or B falsch?

✏️ Modify

Ändere die Bedingung so, dass ausserhalb(x) prüft, ob x nicht zwischen 10 und 20 liegt.

🐍 Python – Modify
„Nicht zwischen 10 und 20“: kleiner als 10 ODER größer als 20 – oder die ganze Bedingung mit not umkehren.
🛠️ Make

Schreibe genau_einer(a, b): True, wenn genau einer der beiden Wahrheitswerte wahr ist.

🐍 Python – Make
Mindestens einer ist wahr – aber nicht beide.
🔮 Predict
Aufgabe 3 – Kurzformen der Zuweisung

x += 5 ist die Kurzform von x = x + 5.

x = 10 x += 5 print(x) x *= 2 print(x)

Was gibt Zeile 3 aus?

Was gibt Zeile 5 aus?

Jede Kurzform verrechnet den aktuellen Wert von x.
▶️ Run – Schritt für Schritt

Trage den Wert von x nach jeder Zeile ein.

x = 20 x -= 5 x *= 3 x //= 5 x %= 4 x += 1
Anweisungx danach
x = 20
x -= 5
x *= 3
x //= 5
x %= 4
x += 1
//= teilt ganzzahlig, %= behält nur den Rest.
🔍 Investigate

Gibt es in Python x++?

Was ergibt a = 5, dann b = a, dann a += 1 für b?

✏️ Modify

Schreibe alle Zuweisungen in der Kurzform (+=, *=, …). Das Ergebnis bleibt gleich.

🐍 Python – Modify
x = x + 7 wird zu x += 7 – genauso für die anderen Rechenarten.
🛠️ Make

Schreibe tausche(a, b) mit einer Hilfsvariable und gib (neues a, neues b) zurück.

🐍 Python – Make
Merke dir einen der beiden Werte in einer Hilfsvariable, bevor du ihn überschreibst.
🔮 Predict
Aufgabe 4 – Rangfolge der Operatoren

Punkt vor Strich, Klammern zuerst, Vergleiche zuletzt.

x = 6 y = 4 print(x * 2 + y - 1) print(x % y == 2 and y > 3)

Was gibt Zeile 3 aus?

Was gibt Zeile 4 aus?

Erst x * 2, dann die Addition und Subtraktion.
▶️ Run – Ausdrücke berechnen

Gegeben: a = 3, b = 7, c = 2.

a = 3 b = 7 c = 2
AusdruckWert
a + b * c
(a + b) * c
b // a + c
b % a * c
b / c
b > a + c and c < a
// teilt ganzzahlig, / liefert eine Kommazahl.
🔍 Investigate

Was ergibt 7 // 2?

Was ergibt -7 // 2 in Python?

✏️ Modify

Füge Klammern hinzu, sodass ergebnis(2, 4) den Wert 18 liefert (nicht 14).

🐍 Python – Modify
Ohne Klammern rechnet Python zuerst b * 3. Welche Rechnung muss zuerst passieren?
🛠️ Make

Schreibe mittelwert(a, b, c): der Durchschnitt der drei Zahlen als Kommazahl.

🐍 Python – Make
Achte auf Klammern – und auf den richtigen Divisionsoperator.
🔮 Predict
Aufgabe 5 – if, elif, else

Der erste zutreffende Zweig wird ausgeführt.

def klassifiziere(n): if n > 0: return "positiv" elif n == 0: return "null" else: return "negativ" print(klassifiziere(7))

Was wird ausgegeben?

Prüfe die Bedingungen von oben nach unten.
▶️ Run – Verschiedene Aufrufe

Was liefert klassifiziere(n)?

AufrufRückgabe
klassifiziere(-3)
klassifiziere(0)
klassifiziere(15)
Achte auf die genaue Schreibweise der Texte.
🔍 Investigate

Was passiert, wenn mehrere if (ohne elif) untereinander stehen?

Wann wird der else-Zweig ausgeführt?

✏️ Modify

Ergänze einen Zweig: Für n > 100 soll "sehr groß" zurückkommen.

🐍 Python – Modify
Die Reihenfolge zählt: Steht n > 100 erst nach n > 0, wird es nie erreicht.
🛠️ Make

Schreibe noten_text(note): 1 → "sehr gut", 2 → "gut", 3 → "befriedigend", 4 → "ausreichend", 5 → "mangelhaft", 6 → "ungenügend", sonst "ungültig".

🐍 Python – Make
Eine if/elif-Kette mit einem else für alle anderen Werte.
🔮 Predict
Aufgabe 6 – Alles zusammen

Verfolge den Aufruf rechne(8, 3).

def rechne(a, b): erg = a + b if a > b: erg += a % b if erg % 2 != 0: erg += 1 return erg print(rechne(8, 3))

Was wird ausgegeben?

Beide if werden unabhängig voneinander geprüft.
▶️ Run – Vollständiger Trace

Trage für rechne(8, 3) nach jeder Zeile erg bzw. das Ergebnis der Bedingung ein.

Anweisungerg / Bedingung
erg = a + b
a > b
erg += a % b
erg % 2 != 0
erg += 1
8 % 3 ist der Rest von 8 geteilt durch 3.
🔍 Investigate

Was liefert rechne(3, 8)?

Was liefert rechne(5, 5)?

✏️ Modify

Erweitere rechne: Ist das Ergebnis am Ende negativ, soll 0 zurückkommen.

🐍 Python – Modify
Ergänze vor dem return eine Bedingung, die erg korrigiert.
🛠️ Make

Schreibe fizzbuzz(n): "FizzBuzz" (durch 15 teilbar), "Fizz" (durch 3), "Buzz" (durch 5), sonst die Zahl als Text.

🐍 Python – Make
Die Reihenfolge der Prüfungen ist wichtig: Eine durch 15 teilbare Zahl ist auch durch 3 teilbar.
🔮 Predict
Aufgabe 7 – Bedingungsausdruck

A if Bedingung else B liefert A, wenn die Bedingung wahr ist, sonst B.

x = 7 s = "gerade" if x % 2 == 0 else "ungerade" print(s) punkte = 85 note = "A" if punkte >= 90 else "B" if punkte >= 80 else "C" print(note)

Was gibt Zeile 3 aus?

Was gibt die letzte Zeile aus?

Werte zuerst die Bedingung aus. Bei der Verschachtelung wird von links nach rechts geprüft.
▶️ Run – Ausdrücke auswerten

Gegeben: a = 10, b = 3.

a = 10 b = 3
AusdruckErgebnis
a if a > b else b
a if a < b else b
"gerade" if a % 2 == 0 else "ungerade"
a // b if b > 0 else 0
Werte zuerst die Bedingung aus, dann wähle den passenden Wert.
🔍 Investigate

Welchen Vorteil hat ein Bedingungsausdruck gegenüber if/else?

Was ergibt "ja" if 0 else "nein"?

✏️ Modify

Schreibe das if/else als einen Bedingungsausdruck: ergebnis = … if … else ….

🐍 Python – Modify
Form: ergebnis = WERT1 if BEDINGUNG else WERT2.
🛠️ Make

Schreibe ampel_text(farbe) mit verschachtelten Bedingungsausdrücken: "rot" → "Stopp", "gelb" → "Achtung", sonst "Fahrt frei".

🐍 Python – Make
Zuerst auf rot prüfen, im else-Teil ein zweiter Bedingungsausdruck für gelb.
🔮 Predict
Aufgabe 8 – Mehrere Fälle

Viele Fälle prüft man in Python mit einer if/elif-Kette (seit Python 3.10 geht auch match).

def wochentag(tag): if tag in (1, 2, 3, 4, 5): return "Werktag" elif tag == 6 or tag == 7: return "Wochenende" else: return "ungültig" print(wochentag(6)) print(wochentag(9))

Was gibt wochentag(6) zurück?

Was gibt wochentag(9) zurück?

tag in (1, 2, 3, 4, 5) prüft, ob tag einer dieser Werte ist.
▶️ Run – Aufrufe

Was liefert jeder Aufruf?

AufrufRückgabe
wochentag(1)
wochentag(3)
wochentag(7)
wochentag(0)
Gehe die Zweige von oben nach unten durch; alles, was nirgends passt, landet im else.
🔍 Investigate

Was prüft tag in (1, 2, 3, 4, 5)?

Was ergibt 2.5 in (1, 2, 3)?

✏️ Modify

Ergänze einen Fall: Für tag == 0 soll "kein Wochentag" zurückkommen.

🐍 Python – Modify
Ergänze vor dem else einen weiteren elif-Zweig.
🛠️ Make

Schreibe jahreszeit(monat): Winter (12, 1, 2), Frühling (3, 4, 5), Sommer (6, 7, 8), Herbst (9, 10, 11), sonst "ungültig".

🐍 Python – Make
Fasse die drei Monate einer Jahreszeit mit in (…) zusammen; ungültige Monate landen im else.
🔮 Predict
Aufgabe 9 – Texte vergleichen

Texte lassen sich mit == und < vergleichen.

a = "Hallo" b = "hallo" print(a == b) print(a.lower() == b) print("Apfel" < "Birne")

Was gibt Zeile 3 aus?

Was gibt Zeile 4 aus?

Was gibt Zeile 5 aus?

Groß- und Kleinbuchstaben sind verschiedene Zeichen. < vergleicht alphabetisch.
▶️ Run – Ausdrücke

Gegeben: a = "Apfel", b = "Birne".

a = "Apfel" b = "Birne"
AusdruckErgebnis
a == b
a.upper() == "APFEL"
a < b
len(a)
upper() schreibt alles groß. len zählt die Zeichen.
🔍 Investigate

Was ergibt "Zebra" < "apfel"?

Wie vergleicht man zwei Texte ohne Rücksicht auf Groß-/Kleinschreibung?

✏️ Modify

Der Vergleich soll Groß-/Kleinschreibung ignorieren: "Geheim123" und "geheim123" gelten als gleich.

🐍 Python – Modify
Bringe beide Texte vor dem Vergleich in dieselbe Schreibweise.
🛠️ Make

Schreibe ist_anagramm(a, b): True, wenn beide Texte dieselben Buchstaben enthalten (Groß-/Kleinschreibung egal). "Listen", "silent" → True.

🐍 Python – Make
Mache beide Texte klein. sorted("text") liefert die Buchstaben sortiert als Liste – was sagt ein Vergleich dieser Listen?
🔮 Predict
Aufgabe 10 – Kurzschluss bei and/or

Die Funktion pruefe meldet, wann sie aufgerufen wird.

def pruefe(name, wert): print("prüfe", name) return wert r = pruefe("A", True) or pruefe("B", False) print(r)

Wie viele Zeilen beginnen mit „prüfe“?

Welchen Wert hat r?

Ist die linke Seite von or schon wahr, steht das Ergebnis fest.
▶️ Run – Was wird ausgewertet?

Trage ein, ob pruefe("B", …) aufgerufen wird (ja/nein) und welches Ergebnis entsteht.

AusdruckB aufgerufen?Ergebnis
pruefe("A", True) or pruefe("B", False)
pruefe("A", False) or pruefe("B", False)
pruefe("A", False) and pruefe("B", True)
pruefe("A", True) and pruefe("B", True)
or braucht die rechte Seite nur, wenn links False steht; and nur, wenn links True steht.
🔍 Investigate

Wann wertet and die rechte Seite nicht aus?

Wozu ist das nützlich?

✏️ Modify

Der Aufruf mit None stürzt ab. Nutze den Kurzschluss: Prüfe zuerst, ob name nicht None ist.

🐍 Python – Modify
Die Prüfung auf None muss vor len(name) stehen – mit and verbunden.
🛠️ Make

Schreibe ist_gueltig(s, minimum, maximum): True, wenn s nicht None und nicht leer ist, nur aus Ziffern besteht (s.isdigit()) und die Zahl im Bereich liegt.

🐍 Python – Make
Kette die Bedingungen mit and – so, dass int(s) erst ausgewertet wird, wenn sicher ist, dass es klappt.

🏅 Deine Badges

Verdiente Badges leuchten auf.

📊 Statistik

↺ Zurücksetzen

Alle gespeicherten Daten werden gelöscht.

📄 Arbeitsblatt erstellen

Wähle aus, welche Bereiche auf das Arbeitsblatt kommen. Es enthält dann alle … Aufgaben dieser Seite aus diesen Bereichen – mit Kästchen zum Ankreuzen, leeren Tabellen und Platz zum Schreiben, ohne Lösungen und Tipps.

Bereiche für das Arbeitsblatt