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.

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()
  1. Wo könnte hier ein Syntaxfehler vorliegen?
  2. Was könnte hier einen Logikfehler verursachen?

Diskutieren Sie die Fehler und schlagen Sie Lösungen vor.

  • modul/m319/learningunits/lu08/repetition.1732096162.txt.gz
  • Zuletzt geändert: 2024/11/20 10:49
  • von kmaurizi