Dies ist eine alte Version des Dokuments!
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.
Interaktive Aufgabe
Neue Aufgabe: Quiz-Bewertung
Das folgende Programm soll die Ergebnisse eines Quiz bewerten. Jede richtige Antwort gibt 10 Punkte, jede falsche Antwort zieht 5 Punkte ab. Die maximale Punktzahl ist jedoch 100 und die minimale Punktzahl 0. Leider enthält das Programm sowohl Syntaxfehler als auch Logikfehler.
def main(): total_points = 0 correct_answers = input('Wie viele richtige Antworten? ') incorrect_answers = input('Wie viele falsche Antworten? ') total_points = correct_answers * 10 - incorrect_answers * 5 if total_points > 100 total_points = 100 elif total_points < 0: total_points = 0 print('Endpunktzahl: ' + total_points) if __name__ = '__main__': main()
Fragen:
- Wo könnte hier ein Syntaxfehler vorliegen?
- Was könnte hier einen Logikfehler verursachen?
- Welche Schritte würdest du unternehmen, um die Fehler zu beheben?
Hinweise zur Fehlerbehebung
- Überprüfen Sie die Verwendung von Operatoren und die Datentypen von Variablen.
- Prüfen Sie, ob alle Bedingungen korrekt geschlossen sind.
- Verwenden Sie Debugging-Strategien, um den Programmablauf zu analysieren.