Lies den folgenden Python-Code bevor du ihn ausführst! Was wird passieren?

Verändere den Code anschliessend, um die Ausgabe zu verändern!

TTTTTTTTTTT T> LLL L T TTTTTTTTTTT count = 0 while not kara.treeFront(): if kara.onLeaf(): count = count + 1 kara.move() print(count, 'Blätter')

Variablen sind benannte Speicherbereiche, in denen ein Wert gespeichert wird. Stell dir Variablen vor wie Schubladen, die mit ihrem Namen angeschrieben sind. Werte haben einen Typ (z.B. Zahl oder Text).

Im Beispiel:

  • count = 0 setzt den Wert der Variable count auf die Zahl 0.
  • count = count + 1 erhöht den Wert der Variable count um 1.

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).
    • OK: count, ninety_nine_balloons, wert3
    • Ungültig: 99_luftballons, mein name, eins,zwei
    • Gültig, aber nicht empfohlen: Name, SIZE, ninetyNineBalloons

Typen

Jeder Python-Ausdruck (und damit jede Variable und jeder Wert) hat einen Typ:

  • int: Ganzzahlen (von en. integer):
    • zum Beispiel 3, 67, -13
    • Python kennt alle Grundoperationen: +, -, * und /.
  • float: Kommazahlen (von en. floating point number: Fliesskommazahl)
    • zum Beispiel 3.14, 1.4142, inf ($\infty$)
  • str: Texte (von en. string: Zeichenkette)
    • Ein String-Wert wird mit 'einfachen' oder "doppelten" Anführungszeichen erzeugt.
  • bool: Logikwerte (Booleans):
    • True oder False
  • object: Objekte
    • Unsere kara ist ebenfalls eine Variable und hat den Typ object: Objekte enthalten Eigenschaften (z.B. Karas Position kara.x bzw. kara.y) und Funktionen (z.B. move()).

Mit print(count, 'Blätter') werden zwei Werte auf der Konsole ausgegeben werden. Als Argumente für print können wir Variablen (count), Werte ('Blätter') oder komplexere Ausdrücke (count + 1) angeben.

Aufgabe E1: Blätter-Prozente

Erweitere den Code des obigen Beispiels und zähle zusätzlich zur Anzahl Blätter auch die Anzahl Felder. Du benötigst zusätzlich zu count eine zweite Variable, um die Felder zu zählen. Du könntest sie beispielsweise squares nennen.

Gib am Schluss den Prozentsatz der Felder aus, die ein Blatt enthalten. Nutze dafür Division (/) und Multiplikation (*)! Was ist der Typ des Resultats?

TTTTTTTTTTT T> LL L T TTTTTTTTTTT count = 0 while not kara.treeFront(): if kara.onLeaf(): count = count + 1 kara.move() print(count, 'Blätter') count = 0 squares = 1 # Start with one to not miss the last square. while not kara.treeFront(): squares = squares + 1 if kara.onLeaf(): count = count + 1 kara.move() percent = count / squares * 100 print(percent, '% Blätter') assert "33.3" in output_lines()[-1], "33.3% der Zellen enthalten ein Blatt"

Aufgabe E2: Blätter zählen

Schreibe Python Code wie folgt:

  • Kara soll weiterlaufen, solange kein Pilz vor ihr ist.
    • Trifft sie auf einen Baum:
      • gibt Kara turning! aus
      • und wendet nach rechts
    • Ist Kara auf einem Blatt:
      • gibt Kara aus, wieviele Blätter sie angetroffen hat
      • und nimmt das Blatt auf
    • Kara geht einen Schritt weiter.
  • Kara gibt done! aus.
TTTTTTTTTTT T>L L L L T TTTTTTTTTLT TLLL LLT T TLTTTTTLTLT TLTL MTLTLT TLTLTTTLTLT TLT TLT TLTTTTTTTLT TLLLLLLLLLT TTTTTTTTTTT count = 0 while not kara.mushroomFront(): if kara.treeFront(): print('turning!') kara.turnRight() if kara.onLeaf(): count = count + 1 print(count, 'leaves') kara.removeLeaf() kara.move() print('done!') assert "34" in output_lines()[-2] assert output_lines()[-1] == 'done!' assert world_leaves() == 0, "Alle Blätter müssen aufgenommen werden!"

Aufgabe E3: Tunnellänge messen

Schreibe Python-Code, um die Länge des Tunnels zu messen. Ein Tunnel ist definiert als eine gerade Strecke, bei der links und rechts ein Baum steht. Am Ende eines Tunnels wird die Länge auf der Konsole ausgegeben. Kara stoppt, wenn Sie auf einen Baum trifft.

Tipps:

  • Lass Kara ein Blatt setzen, wenn sie in einem Tunnel ist, um den Tunnel zu visualisieren.
TTTTTTTTTTTTTTTTTTTTT T T T TTT TTTTTT TTT T> T T TTTTTTTTTTT T T T TTTTTTTTTTTTTTTTTTTTT length = 0 while not kara.treeFront(): if kara.treeLeft() and kara.treeRight(): length = length + 1 kara.putLeaf() # optional kara.move() print(length) assert "6" in output_lines()[-1]

Aufgabe E4: Alternierende Logik

Kara soll entweder Blätter sammeln oder Blätter legen. Der Modus wechselt jedes Mal, wenn Kara bei einem Baum wendet. Die Ecke gehört bereits zum neuen Modus.

Verwende dafür eine Variable des Typs Boolean: collecting = True. Ist die Variable True, werden Blätter gesammelt, andernfalls abgelegt. Bei einer Wende kann die Variable in ihr Gegenteil verkehrt werden: collecting = not collecting

TTTTTTTTTTT T>L L L L T TTTTTTTTTLT TLLL LLT T TLTTTTTLTLT T TL MTLTLT T TLTTTLTLT TLT TLT TLTTTTTTTLT TLLL LL T TTTTTTTTTTT collecting = True while not kara.mushroomFront(): if kara.treeFront(): kara.turnRight() collecting = not collecting if collecting and kara.onLeaf(): kara.removeLeaf() if not collecting and not kara.onLeaf(): kara.putLeaf() kara.move() assert 20 == world_leaves(), f"Erwartete 20 Blätter, aber es hatte {world_leaves()}"
  • gf_informatik/karatutorial/variablen.txt
  • Zuletzt geändert: 2026-09-22 11:09
  • von hof