🐍 Dein Python-Werkzeugkasten

Du hast schon gesehen, wie der Alvik blinkt und sich bewegt! 🎉
Aber wie funktioniert der Code eigentlich? Hier lernst du die wichtigsten Python-Grundlagen, die du für alle Alvik-Projekte brauchst!

📦 1. Variablen – Dein Roboter merkt sich Dinge

Eine Variable ist wie eine beschriftete Schublade, in der du Werte speichern kannst.

Beispiel mit Alvik:

speed = 50              # Geschwindigkeit in cm/s
distance = 20           # Strecke in cm
robot_name = "Alvik"    # Text (String)
is_moving = True        # Wahrheitswert (Boolean)

print(f"{robot_name} fährt mit {speed} cm/s")
# Ausgabe: Alvik fährt mit 50 cm/s
💡 Merke:
  • = bedeutet "zuweisen" (nicht "ist gleich"!)
  • Variablennamen dürfen keine Leerzeichen haben
  • Groß-/Kleinschreibung ist wichtig: Speedspeed

🖨️ 2. print() – Sehen was passiert

Mit print() gibst du Text oder Werte in der Konsole aus – super wichtig zum Debuggen!

Drei Arten von print():

# 1. Einfacher Text
print("Alvik startet!")

# 2. Variablen ausgeben
speed = 30
print(speed)                    # Ausgabe: 30

# 3. Formatierte Strings (f-strings) - am besten!
print(f"Geschwindigkeit: {speed} cm/s")
print(f"Doppelt so schnell: {speed * 2} cm/s")

🤔 3. if/elif/else – Der Roboter trifft Entscheidungen

Mit Bedingungen kann dein Roboter reagieren: "Wenn Hindernis, dann stoppen!"

Vergleichsoperatoren:

== gleich speed == 50
!= ungleich speed != 0
< kleiner als distance < 10
> größer als speed > 20
<= kleiner gleich distance <= 15

Beispiel mit Alvik:

distance = alvik.get_distance()[2]  # Mittlerer Sensor

if distance < 10:
    print("STOP! Hindernis zu nah!")
    alvik.stop()
elif distance < 30:
    print("Vorsicht! Langsam fahren")
    alvik.set_wheels_speed(20, 20)
else:
    print("Freie Fahrt!")
    alvik.set_wheels_speed(50, 50)
⚠️ Einrückung ist wichtig!
Python erkennt Code-Blöcke an der Einrückung (4 Leerzeichen oder Tab).
Alles was eingerückt ist, gehört zur if/elif/else-Bedingung!

🔁 4. for-Schleifen – Wiederholungen

Statt Code 100x zu kopieren, schreibst du ihn einmal und lässt ihn wiederholen!

Beispiele:

# 1. Exakte Anzahl (z.B. Viereck = 4 Seiten)
for i in range(4):
    alvik.move(20)      # Vorwärts
    alvik.rotate(90)    # Drehen

# 2. Mit Start- und Endwert
for speed in range(10, 51, 10):  # 10, 20, 30, 40, 50
    print(f"Geschwindigkeit: {speed}")
    alvik.set_wheels_speed(speed, speed)
    time.sleep(1)

# 3. Über Listen iterieren
colors = ['RED', 'GREEN', 'BLUE']
for color in colors:
    print(f"Farbe: {color}")

♾️ 5. while-Schleifen – Solange wie...

Eine while-Schleife läuft, solange eine Bedingung wahr ist.

Beispiele:

# 1. Endlosschleife (läuft für immer)
while True:
    color = alvik.get_color_label()
    print(f"Ich sehe: {color}")
    time.sleep(0.5)

# 2. Mit Bedingung
distance = 100
while distance > 10:
    distance = alvik.get_distance()[2]
    alvik.move(5)
    print(f"Noch {distance} cm bis zum Ziel")

alvik.stop()
print("Angekommen!")
⚠️ Vorsicht bei while True!
Endlosschleifen laufen ewig. Stoppe sie mit:
Ctrl+C (im Terminal)
• STOP-Button in Thonny

🛠️ 6. Funktionen – Eigene Befehle erstellen

Eine Funktion ist wie ein eigener Befehl, den du dir zusammenbaust und immer wieder nutzen kannst!

Beispiel:

# Funktion definieren
def viereck_fahren():
    """Lässt den Alvik ein Viereck fahren"""
    for i in range(4):
        alvik.move(20)
        alvik.rotate(90)

# Funktion mit Parametern
def fahre_strecke(distanz, geschwindigkeit):
    """Fährt eine bestimmte Strecke mit gewünschter Geschwindigkeit"""
    alvik.set_wheels_speed(geschwindigkeit, geschwindigkeit)
    alvik.move(distanz)
    alvik.stop()

# Funktionen aufrufen
viereck_fahren()                    # Einfach
fahre_strecke(30, 40)               # Mit Werten
fahre_strecke(distanz=50, geschwindigkeit=60)  # Mit Namen
💡 Warum Funktionen?
  • Code wird übersichtlicher
  • Gleicher Code muss nicht wiederholt werden
  • Änderungen nur an einer Stelle

📝 7. Listen – Mehrere Dinge speichern

Eine Liste ist wie eine Einkaufsliste – du kannst mehrere Werte in einer Variable speichern!

Beispiele:

# Liste erstellen
speeds = [10, 20, 30, 40, 50]
colors = ['RED', 'GREEN', 'BLUE', 'YELLOW']
pattern_memory = []  # Leere Liste

# Auf Elemente zugreifen (Index startet bei 0!)
print(colors[0])     # RED (erstes Element)
print(colors[2])     # BLUE (drittes Element)
print(colors[-1])    # YELLOW (letztes Element)

# Elemente hinzufügen
pattern_memory.append('RED')
pattern_memory.append('BLUE')
print(pattern_memory)  # ['RED', 'BLUE']

# Länge einer Liste
print(len(colors))   # 4

# Über Liste iterieren
for color in colors:
    print(f"Farbe: {color}")

📚 8. import – Fremde Befehle nutzen

Mit import holst du dir fertige Funktionen von anderen Programmierern!

Beispiele:

# Ganze Bibliothek importieren
import time
time.sleep(2)  # 2 Sekunden warten

# Nur bestimmte Teile importieren
from time import sleep
sleep(1)  # Jetzt einfach sleep() ohne time.

# Alles von einer Bibliothek
from arduino_alvik import ArduinoAlvik
alvik = ArduinoAlvik()

# Mit Alias (Abkürzung)
from arduino_alvik import ArduinoAlvik as Roboter
alvik = Roboter()

💬 9. Kommentare – Notizen im Code

Kommentare erklären deinen Code – für dich selbst und andere!

# Das ist ein einzeiliger Kommentar
speed = 50  # Kommentar nach Code

"""
Das ist ein mehrzeiliger Kommentar.
Perfekt für längere Erklärungen!
Oder für Funktions-Dokumentation.
"""

def meine_funktion():
    """Das ist eine Docstring - erklärt was die Funktion macht"""
    pass

🎓 Du hast jetzt die wichtigsten Python-Grundlagen!

Mit diesen Werkzeugen kannst du alle Alvik-Projekte verstehen und eigene Programme schreiben!
Keine Angst, wenn noch nicht alles klar ist – du lernst am besten durch Ausprobieren und Fehler machen! 💪

🎯

Challenge: Python-Grundlagen

Teste dein Wissen über Python!

📝 Quiz

Was macht dieser Code?

for i in range(3):
    print(i)

📝 Quiz 2: Variablen

Welche Variable ist korrekt benannt?

📝 Quiz 3: Bedingungen

Was bedeutet !=?

📝 Quiz 4: Listen

Welcher Index gibt das erste Element einer Liste zurück?

colors = ['RED', 'GREEN', 'BLUE']

📝 Quiz 5: while-Schleifen

Was macht eine while True Schleife?

📝 Quiz 6: Funktionen

Mit welchem Schlüsselwort definiert man eine Funktion in Python?

📝 Quiz 7: print() und f-strings

Was gibt dieser Code aus?

speed = 30
print(f"Geschwindigkeit: {speed * 2}")

💻 Code-Challenge

Aufgabe: Schreibe eine Funktion fahre_kreis(), die den Alvik 8 kleine Schritte vorwärts und dann immer 45° drehen lässt (= ein Kreis).

💡 Tipp: Nutze eine for-Schleife mit range(8)
def fahre_kreis():
    """Lässt den Alvik einen Kreis fahren"""
    for i in range(8):
        alvik.move(10)      # 10 cm vorwärts
        alvik.rotate(45)    # 45° drehen
    print("Kreis fertig!")

# Funktion aufrufen
fahre_kreis()

✅ Selbsttest

Hake ab, was du verstanden hast:

Fortschritt: 0/5