Sonnenposition

  • Ich bin schon überfordert, eine Schleife zu basteln, ich vermisse Basic-Sachen in Python.

    Z.B. möchte ich, dass er mit

    Code
    if os.path.isfile("/dev/shm/sonnenhoehe.txt")

    prüft, ob die Datei vorhanden ist.

    Wenn nicht, soll er x Sek. schlafen und neu prüfen.:auslachen: Peinlich, aber ich kriegs nicht hin.

    Tippe ich folgendes springt er mir (logischerweise) nicht zurück, sondern prüft nur 1x , schläft x Sek. und macht dann weiter, obwohl die Datei immer noch nicht da ist. In Basic hätte ich geschrieben

    Code
    goto Zeilennummer

    .

    Wie mache ich das in Python ? :helpnew:


    :wallbash:


    EDIT: Doch geht irgendwie mit

    Code
    while

    :thumbup:

  • Ok, ich bin ja nicht untätig nebenher. :fies:

    Es sieht so aus:

    Der Wert im Programm wird scheinbar nicht aus der Datei aktualisiert, also wenn der Wert von außerhalb des Bereichs in den wieder im akzeptablen Bereich kommt.



  • Ups, glatt übersehen. Allerdings stimmen die Einrückungen nicht, der Code ist so nicht lauffähig.

    Ich glaube, den Denkfehler sehe ich trotzdem: Du wartest in der while-Schleife, bis bspw. sonnenhoehe einen gültigen Wert hat, list aber sonnenhoehe nicht erneut ein, d.h. der anfangs eingelesene Wert ändert sich nie mehr.

  • In Zeile 27 scheint mir ein Logikfehler zu sein, Zeile 33 ist komplett unnötig. Eine Variable erst mit einem Fileobjekt und dann mit dessen Inhalt zu belegen ist nicht wirklich sinnvoll.Du solltest Deinen Code mal in Funktionen aufteilen:


  • Ich denke, Du hast bei der Funktionsdefinition das Argument vergessen. Ansonsten sieht das gut aus, auch wenn mir eine Wiederholzeit von 5 Sekunden für den vorliegenden Fall etwas hektisch erscheint.

  • Ich war mal so frei, @linusg's Skript etwas anzupassen:



    Bin nicht ganz sicher, ob ich die richtigen Elemente der Rückgabe von sunpos ausgewählt habe, ansonsten müsste es aber funktionieren.