Programm Ende bzw. Abbruch Befehl

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.
Neo
User
Beiträge: 18
Registriert: Donnerstag 6. Juli 2006, 14:24

Programm Ende bzw. Abbruch Befehl

Beitragvon Neo » Freitag 7. Juli 2006, 13:49

Hallo zusammen,

kurze Frage zu ner Syntax.

Ich suche bzw. brauche einen Programmabbruch command um eine laufende Sitzung (script) zu schließen. Z.B. bei einer If-Bedingung.
In der Art wie der :EOF im DOS.

Bsp:

Code: Alles auswählen

.....

deff Test(n):
       if n == 2000:
          print 'blablabla'
       else:
          [b]PROGRAMMABBRUCH[/b]

.....


Thx

Neo
Zuletzt geändert von Neo am Freitag 7. Juli 2006, 13:57, insgesamt 1-mal geändert.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Freitag 7. Juli 2006, 13:53

1.) Code in Python-Tags setzen
2.)

Code: Alles auswählen

import sys
sys.exit(0)
Neo
User
Beiträge: 18
Registriert: Donnerstag 6. Juli 2006, 14:24

Beitragvon Neo » Freitag 7. Juli 2006, 13:56

Danke :)
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 7. Juli 2006, 17:10

wenn du spaß an der freude hast, kannst du auch einen error raisen.
(

Code: Alles auswählen

else:
    raise SystemError, "this is to exit this programm"
)

//edit: :-) natürlich habe ich mich verschrieben^^
ich meine natürlich

Code: Alles auswählen

raise SystemExit

^^
Zuletzt geändert von murph am Freitag 7. Juli 2006, 17:31, insgesamt 1-mal geändert.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 7. Juli 2006, 17:28

murph hat geschrieben:

Code: Alles auswählen

raise SystemError, "this is to exit this programm"

Hi murph!

<flüster>raise SystemExit()</flüster>

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Freitag 7. Juli 2006, 17:43

generell sollte man aber immer versuchen das Programm so auslaufen zu lassen, dass kein sys.exit() benötigt wird!

SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 7. Juli 2006, 18:09

außerdem halte ich es für etwas sc****e, nur, um ein Programm zu beenden, sys zu importieren, wie ich es schon oft gesehen habe.
deshalb raise ich lieber irgendwas, außer sys ist sowieso schon 'drin'.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 7. Juli 2006, 18:36

murph hat geschrieben:nur um ein Programm zu beenden, sys zu importieren

Hi murph!

sys ist immer da. Es ist direkt ins Python eingebaut. Es ist nur nicht im Namensraum. Bei ``import sys`` muss Python nicht extra auf die Festplatte zugreifen.

Code: Alles auswählen

>>> import sys
>>> sys
<module 'sys' (built-in)>
>>> import shutil
>>> shutil
<module 'shutil' from 'C:\Python24\lib\shutil.pyc'>
>>> sys.builtin_module_names
('__builtin__', '__main__', '_bisect', '_codecs', '_codecs_cn',
'_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr',
'_codecs_tw', '_csv', '_heapq', '_hotshot', '_locale', '_multibytecodec',
'_random', '_sre', '_subprocess', '_symtable', '_weakref', '_winreg',
'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections',
'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools',
'marshal', 'math', 'md5', 'mmap', 'msvcrt', 'nt', 'operator', 'parser',
'regex', 'rgbimg', 'sha', 'signal', 'strop', 'struct', 'sys', 'thread', 'time',
'xxsubtype', 'zipimport')
>>>

Fazit: sys importieren hat keinerlei Nachteile.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 7. Juli 2006, 18:44

oh, python ist immer wieder für eine überraschung gut!
aber trotzdem mag ich lieber raise SystemExit.
Oder hat das irgendwelche nachteile?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 7. Juli 2006, 19:24

murph hat geschrieben:Oder hat das irgendwelche nachteile?

Hi murph!

Ich glaube nicht.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Beitragvon newone_XXV. » Freitag 7. Juli 2006, 20:13

Ähm und wo ist dann da der Unterschied zwischen dem Beiden? :?
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 7. Juli 2006, 20:24

anscheinend kannst du beides benutzen,
ohne für dich einen unterschied zu bemerken
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 8. Juli 2006, 16:46

newone_XXV. hat geschrieben:Ähm und wo ist dann da der Unterschied zwischen dem Beiden? :?

sys.exit kann einen Rückgabewert ausgeben (nebenbei kann man es mit einem try-except-SystemExit-Konstrukt abfangen). Daneben gibt es noch sys._exit, dass keine mit atexit-registrierten Exit-Handler ausführt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder