im Pyton Programm zurückspringen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    wie Euch bereits bekannt ist fange ich gerade an Python zu lernen. :)
    Mit dem unterstehenden Skript versuche ich sicherzustellen, dass nur korrekte Messwerte meiner 1Wire 18B20 Sensoren in mein mySQL Datenbank gelangen.
    Es kommt manchmal vor das ein Sensor mit -62 Grad ausgelesen wird. (ist wohl Treiber bedingt)

    kurze Beschreibung:
    - zwei messwerte holen
    - diese Werte dividieren = Prüfsumme
    - ist die Prüfsumme nicht zwischen 0,977 - 1,027 soll neu gelesen werden (also im Programm auf Anfang)
    - wenn die Prüfsumme zwischen 0,977 - 1,027 ist soll ein Wert in die Datenbank geschrieben werden und mit dem nächsten Sensor vorgefahren werden.

    Im unterstehenden Skript gebe ich die werte noch aus:
    [font="Monaco, Consolas, Courier, monospace"] print "neu messen1" ... print "neu messen2"[/font]
    [font="Monaco, Consolas, Courier, monospace"]... print "Dieser Wert wird in Datenbank uebergeben" print ist_r1_g1[/font]

    [font="Monaco, Consolas, Courier, monospace"]Wie kann ich statt den print Befehlen sagen gehe zum Anfang (auslesen jeweiliger Sensor der falschen Wert gebracht hat) ?[/font]

    Danke

    Gruß
    v1553804

  • Dafür nimmt man "while" schleifen die solange immer wieder abgearbeitet werden bis der richtige wert da ist.

    Schematisch etwa so:

    Code
    wert1 = Wert eins Einlesen
    wert2 = Wert zwei EInlesen
    result = test(wert1, wert2)
    while not result:
        nochmal Lesen
        result = test(wert1, wert2) #nochmal Prüfen
    
    
    Wert richtig gelesen weiter im Programm
  • Hallo v1553804,

    der folgende Code ist ungetestet sollte dir aber zeigen wie du die Schleife einsetzt.

    Gruß Georg

  • Eigentlich waere eine do - while loop hier richtig. Da es sie aber bei Python nicht gibt muss man while nehmen. Man kann es aber auch mit while emulieren:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!