Vergleiche & Zuweisungen
Informatik · Python · Klassen 9–12 · PRIMM-Methode
🎯 Worum geht's? Klasse 9–12 · 2 Unterrichtsstunden
Nach dieser Seite kannst du …
- Vergleiche und logische Ausdrücke mit
and,or,notauswerten - vorhersagen, welcher Zweig von
if/elif/elseausgeführt wird - Kurzformen wie
+=und Bedingungsausdrücke lesen und schreiben - erklären, wann Python die rechte Seite von
and/orgar 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 …“.
📐 Das Wichtigste in Kürze
- Vergleiche:
== != < > <= >=liefernTrueoderFalse. - Logik:
and(beide),or(mindestens einer),not(Umkehrung). - Kurzformen:
x += 3bedeutetx = x + 3– ebenso-= *= //= %=. Einx++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
Jede Zeile gibt das Ergebnis eines Vergleichs aus.
Was gibt Zeile 4 aus?
Was gibt Zeile 5 aus?
Was gibt Zeile 6 aus?
== prüft Gleichheit, != Ungleichheit, <= „kleiner oder gleich“.Gegeben: x = 10, y = 3, z = 10. Trage True oder False ein.
| Ausdruck | Ergebnis |
|---|---|
x == z | |
x != y | |
y > x | |
y <= 3 | |
x % y == 1 |
% liefert den Rest der Division.Was ist der Unterschied zwischen = und ==?
Welchen Typ hat das Ergebnis eines Vergleichs?
Ergänze den Ausdruck: ist_gerade(n) soll True liefern, wenn n gerade ist.
Schreibe ist_im_bereich(x, minimum, maximum): True, wenn x zwischen den Grenzen liegt (einschließlich).
x muss zwei Bedingungen gleichzeitig erfüllen.Gegeben sind zwei Wahrheitswerte.
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.Gegeben: a = 4, b = 9, c = 4.
| Ausdruck | Ergebnis |
|---|---|
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 |
not, dann and und or.Was passiert bei False and … mit der rechten Seite?
Wann ist A or B falsch?
Ändere die Bedingung so, dass ausserhalb(x) prüft, ob x nicht zwischen 10 und 20 liegt.
not umkehren.Schreibe genau_einer(a, b): True, wenn genau einer der beiden Wahrheitswerte wahr ist.
x += 5 ist die Kurzform von x = x + 5.
Was gibt Zeile 3 aus?
Was gibt Zeile 5 aus?
Trage den Wert von x nach jeder Zeile ein.
| Anweisung | x danach |
|---|---|
x = 20 | |
x -= 5 | |
x *= 3 | |
x //= 5 | |
x %= 4 | |
x += 1 |
//= teilt ganzzahlig, %= behält nur den Rest.Gibt es in Python x++?
Was ergibt a = 5, dann b = a, dann a += 1 für b?
Schreibe alle Zuweisungen in der Kurzform (+=, *=, …). Das Ergebnis bleibt gleich.
x = x + 7 wird zu x += 7 – genauso für die anderen Rechenarten.Schreibe tausche(a, b) mit einer Hilfsvariable und gib (neues a, neues b) zurück.
Punkt vor Strich, Klammern zuerst, Vergleiche zuletzt.
Was gibt Zeile 3 aus?
Was gibt Zeile 4 aus?
x * 2, dann die Addition und Subtraktion.Gegeben: a = 3, b = 7, c = 2.
| Ausdruck | Wert |
|---|---|
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.Was ergibt 7 // 2?
Was ergibt -7 // 2 in Python?
Füge Klammern hinzu, sodass ergebnis(2, 4) den Wert 18 liefert (nicht 14).
b * 3. Welche Rechnung muss zuerst passieren?Schreibe mittelwert(a, b, c): der Durchschnitt der drei Zahlen als Kommazahl.
Der erste zutreffende Zweig wird ausgeführt.
Was wird ausgegeben?
Was liefert klassifiziere(n)?
| Aufruf | Rückgabe |
|---|---|
klassifiziere(-3) | |
klassifiziere(0) | |
klassifiziere(15) |
Was passiert, wenn mehrere if (ohne elif) untereinander stehen?
Wann wird der else-Zweig ausgeführt?
Ergänze einen Zweig: Für n > 100 soll "sehr groß" zurückkommen.
n > 100 erst nach n > 0, wird es nie erreicht.Schreibe noten_text(note): 1 → "sehr gut", 2 → "gut", 3 → "befriedigend", 4 → "ausreichend", 5 → "mangelhaft", 6 → "ungenügend", sonst "ungültig".
if/elif-Kette mit einem else für alle anderen Werte.Verfolge den Aufruf rechne(8, 3).
Was wird ausgegeben?
if werden unabhängig voneinander geprüft.Trage für rechne(8, 3) nach jeder Zeile erg bzw. das Ergebnis der Bedingung ein.
| Anweisung | erg / Bedingung |
|---|---|
erg = a + b | |
a > b | |
erg += a % b | |
erg % 2 != 0 | |
erg += 1 |
8 % 3 ist der Rest von 8 geteilt durch 3.Was liefert rechne(3, 8)?
Was liefert rechne(5, 5)?
Erweitere rechne: Ist das Ergebnis am Ende negativ, soll 0 zurückkommen.
return eine Bedingung, die erg korrigiert.Schreibe fizzbuzz(n): "FizzBuzz" (durch 15 teilbar), "Fizz" (durch 3), "Buzz" (durch 5), sonst die Zahl als Text.
A if Bedingung else B liefert A, wenn die Bedingung wahr ist, sonst B.
Was gibt Zeile 3 aus?
Was gibt die letzte Zeile aus?
Gegeben: a = 10, b = 3.
| Ausdruck | Ergebnis |
|---|---|
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 |
Welchen Vorteil hat ein Bedingungsausdruck gegenüber if/else?
Was ergibt "ja" if 0 else "nein"?
Schreibe das if/else als einen Bedingungsausdruck: ergebnis = … if … else ….
ergebnis = WERT1 if BEDINGUNG else WERT2.Schreibe ampel_text(farbe) mit verschachtelten Bedingungsausdrücken: "rot" → "Stopp", "gelb" → "Achtung", sonst "Fahrt frei".
Viele Fälle prüft man in Python mit einer if/elif-Kette (seit Python 3.10 geht auch match).
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.Was liefert jeder Aufruf?
| Aufruf | Rückgabe |
|---|---|
wochentag(1) | |
wochentag(3) | |
wochentag(7) | |
wochentag(0) |
else.Was prüft tag in (1, 2, 3, 4, 5)?
Was ergibt 2.5 in (1, 2, 3)?
Ergänze einen Fall: Für tag == 0 soll "kein Wochentag" zurückkommen.
else einen weiteren elif-Zweig.Schreibe jahreszeit(monat): Winter (12, 1, 2), Frühling (3, 4, 5), Sommer (6, 7, 8), Herbst (9, 10, 11), sonst "ungültig".
in (…) zusammen; ungültige Monate landen im else.Texte lassen sich mit == und < vergleichen.
Was gibt Zeile 3 aus?
Was gibt Zeile 4 aus?
Was gibt Zeile 5 aus?
< vergleicht alphabetisch.Gegeben: a = "Apfel", b = "Birne".
| Ausdruck | Ergebnis |
|---|---|
a == b | |
a.upper() == "APFEL" | |
a < b | |
len(a) |
upper() schreibt alles groß. len zählt die Zeichen.Was ergibt "Zebra" < "apfel"?
Wie vergleicht man zwei Texte ohne Rücksicht auf Groß-/Kleinschreibung?
Der Vergleich soll Groß-/Kleinschreibung ignorieren: "Geheim123" und "geheim123" gelten als gleich.
Schreibe ist_anagramm(a, b): True, wenn beide Texte dieselben Buchstaben enthalten (Groß-/Kleinschreibung egal). "Listen", "silent" → True.
sorted("text") liefert die Buchstaben sortiert als Liste – was sagt ein Vergleich dieser Listen?Die Funktion pruefe meldet, wann sie aufgerufen wird.
Wie viele Zeilen beginnen mit „prüfe“?
Welchen Wert hat r?
or schon wahr, steht das Ergebnis fest.Trage ein, ob pruefe("B", …) aufgerufen wird (ja/nein) und welches Ergebnis entsteht.
| Ausdruck | B 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.Wann wertet and die rechte Seite nicht aus?
Wozu ist das nützlich?
Der Aufruf mit None stürzt ab. Nutze den Kurzschluss: Prüfe zuerst, ob name nicht None ist.
None muss vor len(name) stehen – mit and verbunden.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.
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.