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-02-10 14:02] (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 75: | Zeile 79: | ||
* am Ende ein " | * am Ende ein " | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<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 101: | Zeile 106: | ||
1. Die Bayern haben nichts in dieser Liste verloren. Bitte entferne sie, danke! Füge weiter deinen Lieblingsklub hinzu. | 1. Die Bayern haben nichts in dieser Liste verloren. Bitte entferne sie, danke! Füge weiter deinen Lieblingsklub hinzu. | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
- | <code python> | ||
<code python> | <code python> | ||
likeable_football_clubs = [" | likeable_football_clubs = [" | ||
Zeile 130: | Zeile 134: | ||
Natürlich sollen sämtliche Schritte voll automatisiert ablaufen. Tauscht man die Liste mit einer anderen Liste, so soll der Code auch funktionieren. | Natürlich sollen sämtliche Schritte voll automatisiert ablaufen. Tauscht man die Liste mit einer anderen Liste, so soll der Code auch funktionieren. | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 176: | Zeile 180: | ||
</ | </ | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 212: | Zeile 216: | ||
Definiere eine Funktion `mittelwert(numbers)`, | Definiere eine Funktion `mittelwert(numbers)`, | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
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) | + | |
</ | </ | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 359: | Zeile 374: | ||
</ | </ | ||
- | < | + | < |
++++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 `" |
`[' | `[' | ||
- | < | + | < |
++++Lösung| | ++++Lösung| | ||
<code python> | <code python> | ||
Zeile 402: | Zeile 418: | ||
Der Aufruf ohne Argument soll weiterhin die Siebnerreihe addieren. | Der Aufruf ohne Argument soll weiterhin die Siebnerreihe addieren. | ||
- | < | + | < |
++++Lösung| | ++++Lösung| | ||
<code python> | <code python> | ||
Zeile 418: | Zeile 434: | ||
</ | </ | ||
+ | === Aufgabe I8 === | ||
+ | **Teil 1**: Schreibe eine Funktion `reverse(liste)`, | ||
+ | <nodisp 1> | ||
+ | ++++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))</ | ||
+ | ++++ | ||
+ | </ |