Kann jemand denn Python Code erklären?

3 Antworten

Dem Sinn des Programms bzw. der einzelnen Schritte kannst du selbst am besten auf die Spur kommen, indem du es an konkreten Daten manuell testest (das heißt, du setzt konkrete Werte für die Variablen ein) und dir vielleicht auch eine Skizze anlegst.

Dafür musst du aber auch etwas über den Kontext kennen. Doch ich denke, das ist bereits der Fall. Es geht um den Aufbau eines Felds, bei dem das Damenproblem gelöst werden soll.

Zu den einzelnen Elemente, die genutzt werden:

  • Du hast eine Funktion (damenprüfung), die etwas prüft und je nachdem, ob es zutrifft, j(a)/n(ein) zurückgibt.
  • Du hast mehrere Schleifen, die über eine Liste laufen. Diese Liste beinhaltet weitere Listen. Sie soll das Schachfeld repräsentieren.
  • Mit append werden neue Elemente an die Liste angehängt, mit den Indexer-Operatoren [] auf bestimmte Elemente zugegriffen. Der Index beginnt dabei seine Zählung bei 0. Wenn ein negativer Index angegeben wird, wird rückwärts beginnend beim letzten Element gezählt.
liste = [ "baum", "haus", "auto"]
print(liste[0]) # baum
print(liste[-1]) # auto

Der Code ist dermassen unübersichtlich und unleserlich geschrieben, dass ich das ohne viel Zeitaufwand auch nicht entziffern kann/möchte.

Folgende Probleme sind mir beim Versuch aufgefallen:

  • Variablennamen sagen rein gar nichts aus. Variablen mit einem Buchstaben haben nur in for-Loops ihre Berechtigung.
  • Variablen mit Umlauten haben im Code nichts verloren. Die Namen sollten sich auf den ASCII-Zeichensatz begrenzen.
  • Funktionsdefinition ist mir völlig unklar. Ausserdem enthält er ebenfalls Umlaute.
  • Die Condition in der Funktion ist ebenfalls unleserlich. Da braucht man unter Umständen mehrere Minuten, um die richtig zu verstehen. Ich habs jedenfalls aufgegeben.
  • Du versuchst im Array l (wofür auch immer das wieder stehen soll) den Index -1 zu setzen. Ich bin kein Python-Experte, ich bin mir aber ziemlich sicher, dass das nicht geht.
  • Und noch weiteres ...

Jedenfalls ist hier irgendwas ganz deftig falsch gelaufen. Wenn das dein Code ist ... naja, hol dir deinen Lehrer dazu.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung