Dies ist eine alte Version des Dokuments!


LU08e - Repetition Syntaxfehler und Logikfehler

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.

  • 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
 
  1. Nutze eine IDE (z. B. PyCharm), die Syntaxfehler direkt anzeigt.
  2. Überprüfe deinen Code sorgfältig, bevor du ihn ausführst.
  3. Lies die Fehlermeldungen genau durch. Sie geben Hinweise auf die Problemstelle.

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.

  • 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
 
  1. Verwende einen Debugger, um den Programmablauf zu analysieren.
  2. Prüfe die Werte von Variablen während der Programmausführung.
  3. Nutze Testfälle, um die Logik deines Codes zu überprüfen.

Ein Debugger ist ein Tool, das hilft, Fehler im Programm zu finden, indem es Einblicke in die Programmausführung gibt.

  1. Breakpoints setzen:

Pausiert das Programm an einer bestimmten Stelle, damit du den aktuellen Zustand prüfen kannst.

  1. Variablen prüfen:

Zeigt den aktuellen Wert von Variablen an.

  1. Schrittweise Ausführung:

Führt den Code Zeile für Zeile aus, um den Ablauf zu verfolgen.

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()
  • 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?
  1. Überprüfen Sie die Verwendung von Operatoren und die Datentypen von Variablen.
  2. Prüfen Sie, ob alle Bedingungen korrekt geschlossen sind.
  3. Verwenden Sie Debugging-Strategien, um den Programmablauf zu analysieren.
  • modul/m319/learningunits/lu08/repetition.1732096411.txt.gz
  • Zuletzt geändert: 2024/11/20 10:53
  • von kmaurizi