Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:python_zusammenfassung [2023-09-25 06:02] – [Verzweigung] hof | gf_informatik:python_zusammenfassung [2023-09-25 07:14] (aktuell) – [Operationen mit Zahlen] hof | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
## The Big Six | ## The Big Six | ||
- | |||
### Variablen | ### Variablen | ||
+ | |||
+ | In **Variablen** werden Werte gespeichert, | ||
+ | |||
+ | Variablen kannst du ganz einfach deklarieren: | ||
+ | |||
+ | Variablen haben jeweils einen **Typ**: | ||
+ | |||
+ | * **Zahlen**: Mit Zahlen kann man rechnen. | ||
+ | * Ein Text wird in der Informatik als **String** bezeichnet. In Python müssen Strings immer in Anführungs- und Schlusszeichen geschrieben werden. Zahlen sind keine Strings und benötigen deshalb keine Anführungs- und Schlusszeichen. Natürlich kann man mit Strings nicht rechnen. | ||
+ | |||
+ | **Beispiele: | ||
+ | |||
+ | <code python> | ||
+ | x = 7 # Zahl | ||
+ | |||
+ | a = " | ||
+ | </ | ||
+ | #### Operationen mit Zahlen | ||
+ | Betrachte als Beispiel den folgenden Code: | ||
+ | |||
+ | <code python> | ||
+ | x = 7 | ||
+ | |||
+ | y = x*x | ||
+ | |||
+ | print(y) | ||
+ | </ | ||
+ | |||
+ | Im ersten Schritte legen wir eine Variable mit Namen `x` fest und weisen ihr den Wert 7 zu. Danach quadrieren wir die Zahl und speichern diesen Wert in einer zweiten Variable mit Namen `y`. Nun geben wir in der Konsole den Wert der Variable `y` (also 49) aus. Die **Konsole** (auch **Terminal**) ist das Fenster unterhalb des Code-Fensters. | ||
+ | Um etwas in der Konsole auszugeben, schreiben wir dies in die `print(...)` Funktion. | ||
+ | |||
+ | Führe diesen Code (selber schreiben, nicht copy-paste!) nun selbst aus. Weise der Variablen `x` nun einen anderen Wert zu. Damit wird dann auch der Wert der Variablen `y` verändert und dementsprechend sieht die Ausgabe im Terminal anders aus. | ||
+ | |||
+ | Einige wichtige **mathematischen Operatoren** sind: | ||
+ | |||
+ | ^ Funktion ^ Python-Code ^ Resultat ^ | ||
+ | | Addition | `7+3` | `10` | | ||
+ | | Subtraktion | `7-3` | `4` | | ||
+ | | Multiplikation | `7*3` | `21` | | ||
+ | | Division (Nachkommastellen) | `7/3` | `2.3333333333...` | | ||
+ | | Ganzzahldivision | `7//3` | `2` | | ||
+ | | Hoch (z.B. 2 hoch 5) | `2**5` | `32` | | ||
+ | | Wurzel (z.B. Wurzel von 2, sqrt für square-root) | `sqrt(2)` | `1.4142135...` | | ||
+ | | Modulo (Rest der Ganzzahl-Division) | `7%3`| `1` | | ||
+ | |||
+ | #### Operationen mit Strings | ||
+ | |||
+ | ^ Funktion | ||
+ | | Länge | ||
+ | | Buchstabe auslesen | ||
+ | | Aneinanderreihen | ||
+ | | _Multiplikation_ | ||
Zeile 43: | Zeile 94: | ||
* Es gibt genau eine `if`-Anweisung! | * Es gibt genau eine `if`-Anweisung! | ||
- | * Man kann **beliebig viele** (auch null) `elif`-Anweisungegn | + | * Man kann **beliebig viele** (auch null) `elif`-Anweisungen |
* Es gibt keine oder eine `else`-Anweisung. | * Es gibt keine oder eine `else`-Anweisung. | ||
* Falls die Bedingung bei `if` oder einem `elif` erfüllt ist, werden alle darauffolgenden `elif` gar **nicht mehr überprüft**. | * Falls die Bedingung bei `if` oder einem `elif` erfüllt ist, werden alle darauffolgenden `elif` gar **nicht mehr überprüft**. | ||
Zeile 107: | Zeile 158: | ||
| `A or B` | ist `True` nur falls mindestens eine der Aussagen `A` und `B` `True` ist | | | `A or B` | ist `True` nur falls mindestens eine der Aussagen `A` und `B` `True` ist | | ||
| `not A` | negiert Aussage `A` | | | `not A` | negiert Aussage `A` | | ||
- | |||
### Listen | ### Listen | ||
+ | Eine Liste ist eine Sequenz von Werten, die in einer einzigen Variable gespeichert werden. | ||
+ | |||
+ | Eine Liste erstellt man wie folgt: | ||
+ | <code python> | ||
+ | L = [' | ||
+ | </ | ||
+ | Eine Liste besteht aus **Elementen**, | ||
+ | |||
+ | Elemente hinten **hinzufügen** kann man mit append: | ||
+ | <code python> | ||
+ | L = [' | ||
+ | L.append(' | ||
+ | </ | ||
+ | |||
+ | Nach dem append-Befehl sieht die Liste wie folgt aus: `[' | ||
+ | <code python> | ||
+ | L.insert(2,' | ||
+ | L.pop(4) # Entfernt das Element mit Index 4 | ||
+ | len(L) # Gibt an, wieviele Elemente sich in der Liste befinden. Diesen Wert kann man z.B. printen oder in einer Variablen speichern | ||
+ | </ | ||
+ | |||
+ | #### Iteration | ||
+ | |||
+ | Iteration bedeutet, alle Elemente einer Liste durchzugehen. Mit einer `while`-Schleife könnte das so aussehen: | ||
+ | <code python> | ||
+ | i = 0 | ||
+ | while i < len(L): | ||
+ | print(L[i]) | ||
+ | i = i + 1 | ||
+ | </ | ||
+ | |||
+ | Noch etwas eleganter geht dasselbe mit einer `for`-Schleife. Dabei wird die Schleifen-Variable (im Beispiel `e`) in jedem Durchgang der Schleife auf das nächste Element der Liste gesetzt. | ||
+ | <code python> | ||
+ | for e in L: | ||
+ | print(e) | ||
+ | </ | ||
### Funktionen | ### Funktionen | ||
+ | |||
+ | Eine **Funktion** verpackt ein Stück Code, das wir öfter benötigen. | ||
+ | |||
+ | Die Funktion ist immer wie folgt aufgebaut: | ||
+ | |||
+ | <code python> | ||
+ | def name_der_funktion(PARAMETER): | ||
+ | # CODE DER FUNKTION | ||
+ | return RETURN_WERT # ist optional | ||
+ | </ | ||
+ | |||
+ | Wir verwenden Funktionen schon lange, viele kennst du: `print` und `input`, `random.randint`, | ||
+ | <code python> | ||
+ | digits = [0, 1, 2, 3, 4, 5] | ||
+ | digits.append(6) | ||
+ | |||
+ | message = "Wir haben {0} Ziffern" | ||
+ | </ | ||
+ | |||
+ | Gründe, um Funktionen zu benützen: | ||
+ | * Effizienz: Wiederholung vermeiden, mehrfach benötigten Code nur einmal schreiben. | ||
+ | * Klarheit: Der Name der Funktion dokumentiert, | ||
+ | * Isolation: Eine Funktion bearbeitet nur ihre Argumente, andere Variablen sind tabu! | ||
+ | |||
+ | Vergleich den folgenden Code und entscheide, was klarer ist: | ||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP 45% column> | ||
+ | <code python> | ||
+ | numbers = [58, 100, 2, 24, 34, 34, 41, 46, 49, 45] | ||
+ | |||
+ | count = 0 | ||
+ | for n in numbers: | ||
+ | if n % 5 == 0: | ||
+ | if n % 3 == 0: | ||
+ | count = count + 1 | ||
+ | print(count) | ||
+ | </ | ||
+ | </ | ||
+ | <WRAP 45% column> | ||
+ | <code python> | ||
+ | def is_multiple(number, | ||
+ | return number % factor == 0 | ||
+ | |||
+ | def count_multiples_of(candidates, | ||
+ | count = 0 | ||
+ | for n in candidates: | ||
+ | if is_multiple(n, | ||
+ | count = count + 1 | ||
+ | return count | ||
+ | |||
+ | numbers = [58, 100, 2, 24, 34, 34, 41, 46, 49, 45] | ||
+ | print(count_multiples_of(numbers, | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||