Variablen & Datentypen
Informatik · Python · Klassen 9–12 · PRIMM-Methode
🎯 Worum geht's? Klasse 9–12 · 2 Unterrichtsstunden
Nach dieser Seite kannst du …
- vorhersagen, welchen Wert eine Variable nach jeder Zeile hat
- zwischen
/und//sowie zwischen Zahlen und Texten unterscheiden - erklären, warum zwei Namen auf dieselbe Liste oder dasselbe Objekt zeigen können
- eigene kleine Funktionen mit Variablen schreiben
Vorwissen: Erste Python-Programme mit print und Zuweisungen
📝 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
x = 5– Zuweisung: Der Namexverweist auf den Wert 5. Der Typ ergibt sich aus dem Wert.7 / 2ergibt3.5,7 // 2ergibt3(ganzzahlig),7 % 2den Rest1.int("12"),str(12),float(3)wandeln zwischen Zahl und Text um.- Listen und Objekte:
b = akopiert nur den Verweis – beide Namen zeigen auf dasselbe. - In einer Funktion legt
x = …eine lokale Variable an.
🏅 Zuletzt verdiente Badges
Analysiere den Code, ohne ihn auszuführen.
Was gibt print(ergebnis) aus?
// teilt ganzzahlig: Der Nachkommateil wird abgeschnitten.Trage nach jeder Zeile die Werte ein (– = gibt es noch nicht).
| Zeile | a | b | ergebnis |
|---|---|---|---|
| 1 | – | – | |
| 2 | – | ||
| 3 | |||
| 4 |
=.Was ergibt 7 / 2 in Python?
Welcher Operator liefert den Rest einer Division (7 … 2 ergibt 1)?
Ändere genau eine Zeile, sodass ergebnis nach Zeile 3 den Wert 3.5 hat (am Ende also 4.5).
Schreibe die Funktion zeit_text(minuten): Sie wandelt Minuten in Stunden und Minuten um, z. B. zeit_text(125) → "2 h 5 min".
// 60, die übrigen Minuten % 60. Zahlen machst du mit str(…) zu Text.Zahlen und Zeichen hängen über den Zeichencode zusammen: chr(65) ist "A".
Was gibt die letzte Zeile aus?
ord macht aus einem Zeichen die Zahl, chr aus der Zahl das Zeichen. float liefert eine Kommazahl.Trage nach jeder Zeile die Werte ein.
| Zeile | n | c | d |
|---|---|---|---|
| 1 | – | – | |
| 2 | – | ||
| 3 | |||
| 4 |
ord(c) berechnen, dann 1 addieren, dann mit chr zurückwandeln.Was ergibt int("12") + 3?
Was passiert bei "12" + 3?
Ändere den Code so, dass d den Wert 65.5 erhält.
n addieren?Schreibe naechster_buchstabe(c) für Großbuchstaben: "A" → "B", … "Z" → "A".
ord(c) - ord("A")), gehe eins weiter und sorge mit % 26 dafür, dass nach Z wieder A kommt.Vergleiche liefern True oder False.
Was gibt print(aussage) aus?
10 % 3 aus. not kehrt einen Wahrheitswert um.Trage die Werte nach Zeile 5 ein.
| Variable | Wert |
|---|---|
p | |
q | |
not q | |
aussage |
y % 3 ist der Rest von 10 geteilt durch 3.Was liefert True or (1 / 0 == 0)?
Welcher Ausdruck prüft, ob n gerade ist?
Ändere die Zeile mit aussage so, dass sie True ist, wenn mindestens eine der Bedingungen p, q gilt.
and oder or?Schreibe ist_schaltjahr(jahr): durch 4 teilbar, aber nicht durch 100 – es sei denn, auch durch 400.
% und verbinde sie mit and und or.Eine Funktion kann eine Variable mit demselben Namen wie außerhalb haben.
Was wird ausgegeben (in dieser Reihenfolge)?
x = 20 in der Funktion legt eine neue, lokale Variable an. Welche sieht das Hauptprogramm?Welcher Wert wird in den beiden print-Zeilen ausgegeben?
| Zeile | Ausgabe |
|---|---|
5 (in zeige()) | |
| 8 (Hauptprogramm) |
zeige() – gibt es dort eine eigene Variable x?Was macht x = 20 in zeige()?
Was bewirkt global x am Anfang einer Funktion?
Ändere zeige() so, dass beide print-Aufrufe 20 ausgeben.
x meint, bevor sie ihm einen Wert zuweist.Schreibe tausche(a, b): Die Funktion gibt beide Werte in umgekehrter Reihenfolge zurück. tausche(3, 7) → (7, 3).
return mehrere Werte durch Komma getrennt zurückgeben.+ verbindet Texte – Zahlen müssen dafür erst Text werden.
Was gibt die letzte Zeile aus?
str(2) ist der Text "2". Texte werden mit + aneinandergehängt.Trage nach jeder Zeile die Werte ein.
| Zeile | s | n | Ausgabe |
|---|---|---|---|
| 1 | – | – | |
| 2 | – | ||
| 3 | – | ||
| 4 |
"1" den Text "2" an.Was passiert bei "1" + 2?
Was ergibt int("1") + 2?
Die Zeile mit summe erzeugt einen Fehler. Ändere sie so, dass summe die Zahl 3 enthält.
s in eine Zahl um, bevor du addierst.Schreibe wiederhole(s, n) mit einer Schleife (ohne *): wiederhole("ab", 3) → "ababab".
"" und hänge in einer Schleife n-mal s an.Achte darauf, wann welcher Wert zugewiesen wird.
Welchen Wert hat y am Ende?
Welchen Wert hat b am Ende?
b = a übernimmt den Wert, den a in diesem Moment hat.Trage nach jeder Zeile die Werte ein.
| Zeile | a | b | y |
|---|---|---|---|
| 1 | – | – | |
| 2 | – | ||
| 3 | – | ||
| 4 |
a. b behält den Wert aus Zeile 2.Ändert a = a + 1 auch b?
Was bewirkt a, b = b, a?
Vertausche zwei Zeilen so, dass am Ende b == 4 und y == 8 gilt.
b soll den erhöhten Wert von a bekommen. Welche Zeile muss dafür früher stehen?Schreibe stellenwert(n, stelle): die Ziffer an Position stelle von rechts (ab 0). stellenwert(1234, 0) → 4, stellenwert(1234, 2) → 2.
n % 10 liefert die letzte Ziffer, n // 10 schneidet sie ab. Wie oft musst du abschneiden?Analysiere den Code, ohne ihn auszuführen.
Was gibt die letzte Zeile aus?
kopie = liste legt keine neue Liste an.Trage nach jeder Zeile die Werte ein.
| Zeile | liste[0] | kopie[0] |
|---|---|---|
| 1 | – | |
| 2 | ||
| 3 |
Was ergibt kopie is liste?
Wie erhält man eine unabhängige Kopie?
Ändere eine Zeile so, dass liste[0] nach der Änderung von kopie weiterhin 1 ist.
Schreibe verdopple(liste): Sie gibt eine neue Liste zurück, in der jedes Element verdoppelt ist. Die alte Liste bleibt unverändert.
append jeden verdoppelten Wert an.Auch Objekte werden über Verweise angesprochen.
Was wird ausgegeben?
p2 = p1 kopiert nur den Verweis – nicht das Objekt.Trage nach jeder Zeile die Werte ein.
| Zeile | p1.alter | p2.alter |
|---|---|---|
| 6 | – | |
| 7 | ||
| 8 |
Was passiert bei p3 = None und danach p3.alter = 5?
Wie prüft man sicher, ob p nicht None ist?
Ändere den Code so, dass p1.alter nach der Änderung noch 25 ist.
p2 ein eigenes Objekt ist, muss es mit Person(…) neu erzeugt werden.Ergänze die Methode aelter(jahre): Sie gibt eine neue Person mit gleichem Namen und um jahre höherem Alter zurück.
Person(…) ein neues Objekt und gib es mit return zurück – self.alter bleibt unverändert.Texte lassen sich nicht verändern – jede Verkettung erzeugt einen neuen Text.
Was gibt die letzte Zeile aus?
a darauf zeigen. Worauf zeigt b?Trage nach jeder Zeile die Werte ein.
| Zeile | a | b |
|---|---|---|
| 1 | – | |
| 2 | ||
| 3 |
a ändert nie b.Was vergleicht == bei Texten?
Wofür ist is gedacht?
Der Vergleich nutzt is. Das klappt nur zufällig – ersetze ihn durch einen Inhaltsvergleich.
Schreibe palindrom(s): True, wenn s vorwärts und rückwärts gleich ist – Groß-/Kleinschreibung zählt nicht. palindrom("Racecar") → True.
lower()). s[::-1] liefert den Text rückwärts.Was ändert sich im Hauptprogramm, wenn eine Funktion ihren Parameter ändert?
Was wird ausgegeben?
n = n * 2 gibt dem Namen n einen neuen Wert. liste[0] = … ändert die Liste selbst.Trage die Werte im Hauptprogramm ein.
| Zeitpunkt | x | werte[0] |
|---|---|---|
| nach Zeile 8 | ||
nach verdoppeln(x) | ||
nach verdoppeln_erstes(werte) |
werte und liste) verändert – x bleibt, wie es ist.Warum ändert verdoppeln(x) das x nicht?
Wie bekommt man den neuen Wert aus der Funktion heraus?
Passe verdoppeln und den Aufruf so an, dass x danach 10 ist.
return zurückgeben – und das Hauptprogramm muss ihn in x speichern.Schreibe fuelle(liste, wert): Sie setzt jedes Element der übergebenen Liste auf wert (die Liste selbst wird geändert, kein return nötig).
range(len(liste)) über alle Indizes und setze jedes Feld.🏅 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.