Verschachtelte Funktionen funktionen bei Python (Spyder) nicht?


18.07.2022, 15:13

Code: https://pastebin.com/FFvVkezE

PW: 0ZA4LK7iie

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich habe mal ein paar Fragen neu Formatiert und angeordnet. Zudem hab ich ein paar Fehler/Verbesserungsvorschläge eingebracht.

https://pastebin.com/sGbrwh0R

Da dein Programm schon sehr umfangreich ist habe ich nur ein Teil neu formatiert, aber du kannst dort bestimmt ein Muster sehen, welches du in deinem Code verbessern kannst

Wenn du Fragen hast, dann kannst du einfach fragen

Woher ich das weiß:eigene Erfahrung
(Könnte das ein fehler des IDE sein?)

Die IDE ist nur der Editor ... Im Hintergrund wird das "normale" Python aufgerufen, das eben auf dem System zu finden ist.

Wenn also etwas bei dir nicht funktioniert, wird es wohl ein Problem im Code geben

Der Code ist richtig und müsste theoretisch auch funktionieren..

Das ist immer das, was man zuerst hört - bis man den Code dann sieht und dutzende Fehler und Probleme erkennt. Aber ohne Code lässt sich das nicht bewerten. Lade diesen doch bei z.B. pastebin / hastebin / github hoch und teile ihn

Funktion 1 führt zu einer der Funktionen 1.1 bis 1.5 welche wiederum entweder zu Funktion 1 zurück oder zu Funktion 2 führen.
Funktion 1 ist der Start und Funktion 2 das Ende die Funktionen 1.1 bis 1.5 sind zwischenschritte die entweder zum Ende (Funktion 2) oder zurück zum Anfang (Funktion 1) führt.

Wie genau handhabst du das? Mit Funktionsaufrufen von 1.1-1.5 auf 1 / 2 oder per "return"? Ersteres könnte zu Problemen führen und auch bei Zweiterem sollte korrekt mit umgegangen werden

Ich dachte eig das es ein übersichtliche lösung wäre in dem Main code jeweils nur einzelne Funktionen auszuführen die ich dann weiter unten definier.

Ist es auch. Wiederholender Code sollte - wenn möglich - in Funktionen ausgelagert werden, damit nicht alles in main steht und der Programmabluaf übersichtlicher ist

Hast du eigentlich wirklich eine "main"-Funktion oder meinst du mit "Main Code" eben Code, welcher einzeln - ohne Funktion - darsteht? Wenn letzeres, würde ich dir bei Python folgendes Konstrukt empfehlen:

def main():
  # Programmablauf

if __name__ == "__main__":
  main()

das ganze lässt sich natürlich noch weiter anpassen, aber damit ist jeglicher Code dann - bis auf den initialen Aufruf der Main-Methode - in einer Funktion und es kommt auch nicht zu ungewollten Nebeneffekten, wenn man das Skript importiert

hat das ein grund das dass nicht funktioniert?

Fehler in der Programmierung

Ich kenne mich mit dem ganzen leider noch nicht so gut aus da ich vor kurzem erst angefangen hab mir python beizubringen und allgemein relativ unerfahren bin was programmieren angeht.

Siehe mein Kommentar weiter oben zu "Der Code ist richtig und müsste theoretisch auch funktionieren". Gerade als Anfänger mit einer unbekannten Sprache denkt man, dass etwas funktionieren sollte, aber es funktioniert in der Sprache oder allgemein in der Logik eben nicht so, wie du es erwartest

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

Ponthos 
Beitragsersteller
 18.07.2022, 15:15

Ich habs doch gleich gemacht aber nichts gekürzt (ich dachte das wäre besser für die verständlichkeit) aber sag bescheid wenn ichs noch machen soll

Ponthos 
Beitragsersteller
 18.07.2022, 14:40

ok ;) vielen dank für deine Antwort. Ich würde den code aufs wesentliche kürzen und hochladen. Ich muss schauen wann ich neben uni usw dazukomme