An eine bestimmte Stelle im Python-Skript springen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
KiS
User
Beiträge: 19
Registriert: Samstag 29. April 2006, 07:26

Montag 29. Mai 2006, 08:05

Hallo ihr.
Ich hab da mal ne Frage. Und zwar hab ich folgendes Programm:

Code: Alles auswählen

x=raw_input("Bitte gewünschten Port eingeben:")
print x
if x == 1:
                c.execute("""UPDATE watchdog
                SET Status = '0'
                WHERE Port="""+x)
                print 'ok'
else:
                c.execute("""UPDATE watchdog
                SET Status = '1'
                WHERE Port="""+x)
                print 'server down'
break
Ich möchte dann aber immer nach der else und nach der if anweisung wieder zur Port eingabe zurückspringen. Hab schon im Python-Forum gesucht aber nichts gefunden. Mit Continue geht das auch nicht denn wenn ich statt break continue schreibe dann bleicht das Programm immer in der else oder if-Schleife hängen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 29. Mai 2006, 08:23

KiS hat geschrieben:Mit Continue geht das auch nicht denn wenn ich statt break continue schreibe dann bleicht das Programm immer in der else oder if-Schleife hängen.
Hi KIS!

Es gibt keine IF-Schleife. Streiche doch bitte dieses Wort aus deinem Wortschatz. Es gibt in Python For-Schleifen und While-Schleifen. Beide kannst du mit "break" abbrechen um mit dem Code nach der Schleife fortzusetzen. Beide kannst du mit "continue" dazu auffordern, mit dem nächsten Schleifendurchlauf zu beginnen, ohne den Rest des Schleifenkörpers abzuarbeiten. Aber, es gibt keine If-Schleife.

Code: Alles auswählen

while True:
    portstring = raw_input("Bitte gewünschten Port eingeben:")
    print portstring
    
    if portstring == "":
        break
    elif portstring == "1":
        c.execute("""UPDATE watchdog
        SET Status = '0'
        WHERE Port=""" + portstring)
        print 'ok'
    else:
        c.execute("""UPDATE watchdog
        SET Status = '1'
        WHERE Port=""" + portstring)
        print 'server down'
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
KiS
User
Beiträge: 19
Registriert: Samstag 29. April 2006, 07:26

Montag 29. Mai 2006, 13:09

Danke für die Hilfe erstmal ich werds dann gleich mal ausprobieren. Kann ich das selbe auch in Linux machen oder muss ich da dann irgendwas berücksichtigen?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 29. Mai 2006, 13:47

KiS hat geschrieben:Danke für die Hilfe erstmal ich werds dann gleich mal ausprobieren. Kann ich das selbe auch in Linux machen oder muss ich da dann irgendwas berücksichtigen?
HI KIS!

So ausgerüstet läuft es unter Linux und Windows gleichermaßen gut.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import sys
import codecs

# StdOut und StdErr umleiten -> Streamwriter mit korrektem Encoding
# (!!!funktioniert nicht im IDLE!!!)
out_encoding = sys.stdout.encoding or sys.getfilesystemencoding()
sys.stdout = codecs.getwriter(out_encoding)(sys.__stdout__)

while True:
    portstring = raw_input(u"Bitte gewünschten Port eingeben:")
    print portstring
   
    if portstring == "":
        break
    elif portstring == "1":
        c.execute("""UPDATE watchdog
        SET Status = '0'
        WHERE Port=""" + portstring)
        print u'ok'
    else:
        c.execute("""UPDATE watchdog
        SET Status = '1'
        WHERE Port=""" + portstring)
        print u'server down'
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten