Anleitung

Python-Lernumgebung

Python direkt im Browser schreiben und ausführen — so funktioniert's.

Python-Umgebung öffnen

Was ist das?

Eine kleine Programmierumgebung, die komplett im Browser läuft (Technologie: Pyodide/WebAssembly). Es muss nichts installiert werden, und es gibt keinen Account. Eigener Python-Code wird direkt im eigenen Browser ausgeführt — nicht auf dem Server.

Der Editor

Der Code-Editor (CodeMirror) bringt Syntax-Hervorhebung, Klammer-Ausgleich und eine einfache Autovervollständigung mit (Strg+Leertaste — schlägt Python-Schlüsselwörter, bereits verwendete Namen sowie die minipygame-/ schildkroete-Methoden vor; kein vollständiges Sprachverständnis wie in einer großen IDE).

Bedienelemente im Überblick

  • Neues Projekt starten — legt eine neue, leere Datei an und schaltet auf die eigenen Dateien um
  • Neue Datei — fügt dem aktuellen Projekt eine weitere Datei hinzu
  • Beispiele ▾ — öffnet eine der mitgelieferten Beispieldateien, ohne das eigene Projekt zu stören
  • Datei hochladen — .py, .txt, .csv, .png, .jpg/.jpeg
  • Datei löschen — entfernt die gerade offene eigene Datei
  • Alle zurücksetzen — wirft eigene Änderungen weg, stellt den Auslieferungszustand wieder her
  • Paket als ZIP speichern / ZIP-Paket laden — kompletten Stand sichern und wiederherstellen
  • Ausführen — führt die gerade offene Datei aus
  • Herunterladen — speichert nur die aktuell offene Datei als .py
  • Ausgabe leeren — löscht nur den Konsolentext, nicht den Code

Beispiele

  • ampel.py — eine Ampel als Zustandsautomat (Klasse, kein eigenes Ergebnis — wird von anderen Dateien importiert)
  • kreuzung.py — zwei Ampeln an einer Kreuzung, nutzt ampel.py per Import
  • kreuzung_bild.py — dieselbe Kreuzung, aber das Ampel-Gehäuse ist ein hochgeladenes Bild statt gezeichnet
  • funktionsplot.py — Funktionsgraphen mit numpy/matplotlib
  • monte_carlo_pi.py — die Zahl Pi per Zufallsversuch schätzen, live visualisiert
  • fraktal_baum.py — ein rekursiver Fraktalbaum
  • kochkurve.py — die Koch-Schneeflocke, ein klassisches Fraktal

Eigene Dateien und Bilder

Über „Datei hochladen" lassen sich .py-, .txt-, .csv- und Bilddateien (.png/.jpg) einbinden. Textdateien werden zu eigenen Reitern, Bilder/CSVs erscheinen als kleine Chips und lassen sich im Code ganz normal per open("dateiname.csv") lesen.

Zeichnen: minipygame

Für Grafik-Übungen steht das Objekt minipygame bereit — eine kleine, eigene Zeichenbibliothek (kein echtes Pygame, dafür zuverlässig im Browser). Vollständige Methodenliste:

  • minipygame.fill((r,g,b)) — Hintergrund füllen
  • minipygame.kreis(x, y, radius, (r,g,b))
  • minipygame.rechteck(x, y, breite, hoehe, (r,g,b))
  • minipygame.text(x, y, "text")
  • await minipygame.warte(sekunden) — Pause in Animationsschleifen (wichtig, siehe „Gut zu wissen")
  • await minipygame.bild_laden("datei.png") — einmalig vor der ersten Nutzung
  • minipygame.bild("datei.png", x, y, breite, hoehe) — zeichnet das geladene Bild

Zeichnen: schildkroete (Turtle-Grafik)

Für Rekursion und Fraktale steht schildkroete bereit — orientiert an der klassischen Turtle-Logik: (0,0) ist die Mitte, 0° zeigt nach rechts, positive Winkel drehen gegen den Uhrzeigersinn. Vollständige Methodenliste:

  • schildkroete.vorwaerts(laenge) / rueckwaerts(laenge)
  • schildkroete.rechts(winkel) / links(winkel) / richtung(winkel)
  • schildkroete.stift_hoch() / stift_runter()
  • schildkroete.farbe("blau") oder farbe(r,g,b) — benannte Farben: rot, gruen, blau, gelb, weiss, schwarz, orange, lila, pink, braun, grau
  • schildkroete.stiftbreite(breite)
  • schildkroete.springe_zu(x,y) — Positionswechsel ohne zu zeichnen
  • schildkroete.gehe_zu(x,y) — Positionswechsel, zeichnet dabei (wenn Stift unten)
  • schildkroete.position() — gibt (x, y) zurück
  • schildkroete.reset() — setzt Position/Richtung zurück und leert die Zeichenfläche

Verfügbare Pakete

Neben der Python-Standardbibliothek (math, random, statistics, json, re usw. — immer sofort verfügbar, kein Nachladen nötig) werden folgende Pakete automatisch erkannt und bei Bedarf aus dem Internet nachgeladen, sobald sie in irgendeiner Projektdatei importiert werden:

  • numpy — Rechnen mit Zahlenfeldern/Vektoren.
    import numpy as np; werte = np.linspace(-5, 5, 100)
  • matplotlib — Diagramme zeichnen. Am Ende zeige_plot() aufrufen, um das Diagramm im Anzeige-Feld darzustellen (siehe funktionsplot.py).
  • pandas — Tabellendaten auswerten, z. B. aus einer hochgeladenen .csv-Datei:
    import pandas as pd; tabelle = pd.read_csv("daten.csv")
  • sympy — symbolisches Rechnen (Gleichungen lösen, Terme vereinfachen, Ableitungen):
    import sympy as sp
    x = sp.symbols("x")
    print(sp.solve(sp.Eq(x**2 - 4*x + 3, 0), x))
  • Pillow (Modulname beim Importieren: PIL) — Bilder programmatisch erzeugen/bearbeiten. Ein erzeugtes Bild lässt sich speichern und danach wie ein hochgeladenes Bild anzeigen:
    from PIL import Image, ImageDraw
    bild = Image.new("RGB", (100,100), "white")
    ImageDraw.Draw(bild).ellipse([10,10,90,90], fill="red")
    bild.save("kreis.png")
    await minipygame.bild_laden("kreis.png")
    minipygame.bild("kreis.png", 0, 0, 100, 100)

Weitere der zahlreichen in Pyodide enthaltenen Pakete lassen sich bei Bedarf ergänzen.

Speichern

Alles läuft nur im Arbeitsspeicher des Browsers — beim Neuladen der Seite ist der Stand weg. Über „Paket als ZIP speichern" lässt sich das komplette Projekt (alle Dateien + Bilder) als Datei sichern und später über „ZIP-Paket laden" wieder herstellen. Einzelne Dateien lassen sich auch separat über „Herunterladen" sichern.

Gut zu wissen

  • Eine Schleife ganz ohne await (z. B. versehentliches while True:) blockiert den Tab — dann hilft nur Neu laden.
  • Alle nachgeladenen Pakete (numpy, matplotlib, pandas, sympy, Pillow) brauchen beim ersten Gebrauch eine Internetverbindung — ohne Internet funktionieren nur Beispiele ohne diese Importe.
  • Hochgeladene Dateien und ZIP-Pakete verlassen den eigenen Browser nie — nichts wird an einen Server übertragen.