Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:programmieren_iii [2024-12-30 08:48] – hof | gf_informatik:programmieren_iii [2025-11-20 09:51] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| Bisher haben wir in Variablen einzelne Werte gespeichert. Kann man auch *mehrere Werte* in einer Variablen speichern? Ja! Mit Listen! | Bisher haben wir in Variablen einzelne Werte gespeichert. Kann man auch *mehrere Werte* in einer Variablen speichern? Ja! Mit Listen! | ||
| - | Eine Liste erstellt | + | Eine Liste wird erstellt, indem die Elemente in `[` eckigen Klammern `]` (_en_: brackets) eingeschlossen werden: |
| <code python> | <code python> | ||
| alphabet = [' | alphabet = [' | ||
| Zeile 14: | Zeile 15: | ||
| Die Liste im Beispiel oben hat die fünf **Elemente** `' | Die Liste im Beispiel oben hat die fünf **Elemente** `' | ||
| - | ^ Position Index ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ | + | ^ Position |
| - | |Element| ' | + | |Element| |
| Beachte, dass das erste Element den **Index 0** hat! | Beachte, dass das erste Element den **Index 0** hat! | ||
| - | Über den Index kann man auf ein **Element zugreifen**. Dazu schreibt man zuerst den Namen der Liste und dann den Index in eckigen Klammern: | + | ==== Selektion und Modifikation ==== |
| + | |||
| + | Über den Index kann man auf ein **Element zugreifen**, das Element wird _ausgewählt_ oder **selektiert**. Dazu schreibt man zuerst den Namen der Liste und dann den Index in eckigen Klammern: | ||
| <code python> | <code python> | ||
| print(alphabet[2]) # gibt ' | print(alphabet[2]) # gibt ' | ||
| Zeile 41: | Zeile 44: | ||
| ==== Iteration ==== | ==== Iteration ==== | ||
| + | |||
| Oft möchte man durch alle Elemente einer Liste **durchgehen** und etwas mit diesen machen, z.B. sie in die Konsole printen: | Oft möchte man durch alle Elemente einer Liste **durchgehen** und etwas mit diesen machen, z.B. sie in die Konsole printen: | ||
| <code python> | <code python> | ||
| Zeile 94: | Zeile 98: | ||
| Betrachte die Liste: | Betrachte die Liste: | ||
| + | |||
| <code python> | <code python> | ||
| likeable_football_clubs = [" | likeable_football_clubs = [" | ||
| Zeile 103: | Zeile 108: | ||
| <nodisp 2> | <nodisp 2> | ||
| ++++Lösung: | ++++Lösung: | ||
| - | <code python> | ||
| <code python> | <code python> | ||
| likeable_football_clubs = [" | likeable_football_clubs = [" | ||
| Zeile 292: | Zeile 296: | ||
| * Modifiziere nun deinen Code so, dass der Abstand zwischen den Linien (a) enger oder (b) grösser wird. | * Modifiziere nun deinen Code so, dass der Abstand zwischen den Linien (a) enger oder (b) grösser wird. | ||
| - | In den bisherigen for-Schleifen wurde der Parameter in jedem Durchlauf um 1 erhöht. Möchten wir, dass grössere Schritte gemacht werden, können wir wie folgt vorgehen: | + | === Startwert === |
| + | |||
| + | Statt immer bei null zu starten, kann der Startwert auch angegeben werden: | ||
| + | <code python> | ||
| + | for m in range(10, | ||
| + | print(m) | ||
| + | </ | ||
| + | |||
| + | Mit zwei Parametern interpretiert `range` den ersten als Start- und den zweiten als (exklusiven) Endwert. | ||
| + | |||
| + | === Schrittweite === | ||
| + | In den bisherigen for-Schleifen wurde der Parameter in jedem Durchlauf um 1 erhöht. Möchten wir, dass grössere Schritte gemacht werden, können wir _drei_ Parameter verwenden: | ||
| <code python> | <code python> | ||
| for m in range(0, | for m in range(0, | ||
| Zeile 298: | Zeile 313: | ||
| </ | </ | ||
| - | Der Parameter `m` hat im ersten Durchlauf den Wert `0`. In jedem weiteren Durchlauf wird er um `10` erhöht, | + | Der Parameter `m` hat im ersten Durchlauf den Wert `0`. In jedem weiteren Durchlauf wird er um `10` erhöht, |
| #### Positionen einer Liste aufzählen | #### Positionen einer Liste aufzählen | ||
| Zeile 323: | Zeile 338: | ||
| === Aufgabe I2 === | === Aufgabe I2 === | ||
| - | Verwende eine *for-Schleife* und die `rightArc`-Funktion um eine Spirale zu erzeugen, ähnlich wie diejenige im Bild. | + | Verwende eine *for-Schleife* und die `circle`-Funktion um eine Spirale zu erzeugen, ähnlich wie diejenige im Bild. |
| {{ : | {{ : | ||
| Zeile 337: | Zeile 352: | ||
| <code python> | <code python> | ||
| for i in range(4, | for i in range(4, | ||
| - | print(i) | + | |
| </ | </ | ||
| Zeile 360: | Zeile 375: | ||
| <nodisp 2> | <nodisp 2> | ||
| + | |||
| ++++Lösung| | ++++Lösung| | ||
| <code python> | <code python> | ||
| Zeile 379: | Zeile 395: | ||
| === Aufgabe I6 === | === Aufgabe I6 === | ||
| - | Finde den Index (die Position) von `" | + | Finde den Index (die Position) von `" |
| `[' | `[' | ||
| Zeile 418: | Zeile 434: | ||
| </ | </ | ||
| + | === Aufgabe I8 === | ||
| + | **Teil 1**: Schreibe eine Funktion `reverse(liste)`, | ||
| + | <nodisp 2> | ||
| + | ++++Lösung| | ||
| + | <code python> | ||
| + | def reverse(liste): | ||
| + | result = [] | ||
| + | # range erzeugt eine Zahlenfolge n, n-1, ... 3, 2, 1, 0: | ||
| + | # | ||
| + | # Der letzte Index ist 0, das exklusive Ende damit -1 | ||
| + | # Die Schrittweite ist -1 (wir zählen ja rückwärts) | ||
| + | for index in range(len(liste) - 1, -1, -1): | ||
| + | result.append(liste[index]) | ||
| + | return result | ||
| + | |||
| + | names = [' | ||
| + | print(reverse(names))</ | ||
| + | ++++ | ||
| + | </ | ||