====== LU08e - Repetition Syntaxfehler und Logikfehler ====== ===== Was ist ein Syntaxfehler? ===== Ein **Syntaxfehler** tritt auf, wenn der Code gegen die Regeln der Programmiersprache verstößt. Python versteht den Code in diesem Fall nicht und bricht die Ausführung ab. ==== Typische Beispiele für Syntaxfehler ==== * **Fehlende oder falsche Klammern:** print('Hello World' # Fehlende schließende Klammer * **Falsche Einrückung:** def greet(): print('Hello') print('World') # Einrückung stimmt nicht * **Tippfehler im Code:** priint('Hello') # Tippfehler im Funktionsnamen ==== Tipps zur Vermeidung ==== - Nutze eine **IDE** (z. B. PyCharm), die Syntaxfehler direkt anzeigt. - Überprüfe deinen Code sorgfältig, bevor du ihn ausführst. - Lies die Fehlermeldungen genau durch. Sie geben Hinweise auf die Problemstelle. ===== Was ist ein Logikfehler? ===== Ein **Logikfehler** tritt auf, wenn der Code zwar korrekt ausgeführt wird, aber nicht das gewünschte Ergebnis liefert. Diese Fehler sind schwieriger zu finden, da sie keine Fehlermeldung erzeugen. ==== Beispiele für Logikfehler ==== * **Falsche Berechnung:** def calculate_average(numbers): return sum(numbers) # Vergessen, durch die Anzahl der Zahlen zu teilen * **Endlosschleifen:** x = 0 while x < 10: print(x) # 'x' wird nie erhöht, Schleife endet nie * **Falsche Bedingungen:** age = 20 if age > 18: print('You are a minor') # Logikfehler: Sollte 'You are an adult' sein ==== Debugging-Strategien für Logikfehler ==== - Verwende einen **Debugger**, um den Programmablauf zu analysieren. - Prüfe die Werte von Variablen während der Programmausführung. - Nutze **Testfälle**, um die Logik deines Codes zu überprüfen. ===== Debugger nutzen ===== Ein **Debugger** ist ein Tool, das hilft, Fehler im Programm zu finden, indem es Einblicke in die Programmausführung gibt. ==== Wichtige Funktionen eines Debuggers ==== - **Breakpoints setzen:** Pausiert das Programm an einer bestimmten Stelle, damit du den aktuellen Zustand prüfen kannst. - **Variablen prüfen:** Zeigt den aktuellen Wert von Variablen an. - **Schrittweise Ausführung:** Führt den Code Zeile für Zeile aus, um den Ablauf zu verfolgen. ---- {{tag>m319-E2F, m319-E2E}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Kevin Maurizi