Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:karatutorial:variablen [2026-08-30 18:38] – [Aufgabe E2: Tunnellänge messen] hof | gf_informatik:karatutorial:variablen [2026-09-03 20:22] (aktuell) – [Aufgabe E3: Tunnellänge messen] hof | ||
|---|---|---|---|
| Zeile 19: | Zeile 19: | ||
| {{ : | {{ : | ||
| - | Variablen sind benannte Speicherbereiche, | + | Variablen sind benannte Speicherbereiche, |
| Im Beispiel: | Im Beispiel: | ||
| - | * `count = 0` deklariert eine neue _Variable_ | + | * `count = 0` setzt den _Wert_ der _Variable_ |
| - | * `count = count + 1` setzt den Wert der Variable `count` | + | * `count = count + 1` erhöht |
| #### Variablennamen | #### Variablennamen | ||
| * Variablennamen beginnen mit einem Buchstaben und können beliebige weitere Buchstaben und Zahlen und `_` enthalten, aber keine Leerschläge oder Satzzeichen. Wir verwenden Kleinbuchstaben (obwohl Python auch Grossbuchstaben zulässt). | * Variablennamen beginnen mit einem Buchstaben und können beliebige weitere Buchstaben und Zahlen und `_` enthalten, aber keine Leerschläge oder Satzzeichen. Wir verwenden Kleinbuchstaben (obwohl Python auch Grossbuchstaben zulässt). | ||
| - | * OK: `count`, `meine_variable`, `wert3` | + | * OK: `count`, `ninety_nine_balloons`, `wert3` |
| * Ungültig: `99_luftballons`, | * Ungültig: `99_luftballons`, | ||
| * Gültig, aber nicht empfohlen: `Name`, `SIZE`, `ninetyNineBalloons` | * Gültig, aber nicht empfohlen: `Name`, `SIZE`, `ninetyNineBalloons` | ||
| - | ### Typen | + | #### Typen |
| - | Jeder Wert hat einen Typ: | + | Jeder Python-Ausdruck (und damit jede Variable und jeder Wert) hat einen Typ: |
| - | * Ganzzahlen (`int` von _en._ integer): | + | * Ganzzahlen (`int` von _en._ _integer_): |
| * zum Beispiel `3`, `67`, `-13` | * zum Beispiel `3`, `67`, `-13` | ||
| * Python kennt alle Grundoperationen: | * Python kennt alle Grundoperationen: | ||
| - | * Texte (`string`von _en._ Zeichenkette) | + | * Texte (`str`von _en._ _string_: |
| * Ein String-Wert wird mit `' | * Ein String-Wert wird mit `' | ||
| + | * Booleans (Logikwerte, | ||
| + | * `True` oder `False` | ||
| + | * Objekte | ||
| + | * Unsere `kara` ist ebenfalls eine Variable des Typs `object`: Objekte enthalten Eigenschaften (z.B. Karas Position) und Funktionen (z.B. `move()`). | ||
| ### Ausgabe | ### Ausgabe | ||
| - | Mit `print(count, | + | Mit `print(count, |
| + | #### Aufgabe E1: Blätter-Prozente | ||
| - | #### Aufgabe | + | Erweitere den Code von oben und zähle zusätzlich zur Anzahl Blätter auch die Anzahl Felder. Gib am Schluss der Prozentsatz der Felder aus, die ein Blatt enthalten. Nutze dafür Division (`/`) und Multiplikation (`*`)! |
| + | |||
| + | < | ||
| + | < | ||
| + | TTTTTTTTTTTT | ||
| + | T> LLL L T | ||
| + | TTTTTTTTTTTT | ||
| + | </ | ||
| + | count = 0 | ||
| + | while not kara.treeFront(): | ||
| + | if kara.onLeaf(): | ||
| + | count = count + 1 | ||
| + | kara.move() | ||
| + | print(count, | ||
| + | < | ||
| + | count = 0 | ||
| + | cells = 1 | ||
| + | while not kara.treeFront(): | ||
| + | cells = cells + 1 | ||
| + | if kara.onLeaf(): | ||
| + | count = count + 1 | ||
| + | kara.move() | ||
| + | percent = count / cells * 100 | ||
| + | print(percent, | ||
| + | </ | ||
| + | < | ||
| + | assert " | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | #### Aufgabe | ||
| Schreibe Python Code wie folgt: | Schreibe Python Code wie folgt: | ||
| * Kara soll weiterlaufen, | * Kara soll weiterlaufen, | ||
| * Trifft sie auf einen Baum: | * Trifft sie auf einen Baum: | ||
| - | * gib Kara `turning!` aus | + | * gibt Kara `turning!` aus |
| * und wendet nach rechts | * und wendet nach rechts | ||
| * Ist Kara auf einem Blatt: | * Ist Kara auf einem Blatt: | ||
| Zeile 88: | Zeile 123: | ||
| </ | </ | ||
| </ | </ | ||
| - | #### Aufgabe | + | #### Aufgabe |
| Schreibe Python-Code, | Schreibe Python-Code, | ||
| Zeile 100: | Zeile 135: | ||
| | | ||
| | | ||
| - | | + | |
| | | ||
| - | | + | |
| | | ||
| | | ||
| Zeile 112: | Zeile 147: | ||
| length = length + 1 | length = length + 1 | ||
| kara.putLeaf() | kara.putLeaf() | ||
| - | else: | ||
| - | if length > 0: | ||
| - | print(" | ||
| - | length = 0 | ||
| kara.move() | kara.move() | ||
| + | print(length) | ||
| </ | </ | ||
| < | < | ||
| - | assert "2" in output_lines()[-3] | + | assert "6" in output_lines()[-1] |
| - | assert " | + | |
| - | assert "1" in output_lines()[-1] | + | |
| </ | </ | ||
| </ | </ | ||