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
Codebeispiel mit Syntax- und Logikfehlern
def main(): mark_count = '0' mark_total = '0.0' mark_minimum = '99.9' mark = float(input('Note eingeben > ') while mark > 0.0 mark_count += 1 mark_total += marks if mark < mark_minimum: mark_minimum = mark mark = float(input('Note eingeben > '))) if mark_count greater_than 1: mark_total =- mark_minimum mark_count =- 1 average = mark_totaL : mark_count print 'Notenschnitt: ' & average if __name__ == '__main__': main()
Fragen:
- Wo könnte hier ein Syntaxfehler vorliegen?
- Was könnte hier einen Logikfehler verursachen?
Diskutieren Sie die Fehler und schlagen Sie Lösungen vor.