Seite 1 von 1

Programm Ende bzw. Abbruch Befehl

Verfasst: Freitag 7. Juli 2006, 13:49
von Neo
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

Verfasst: Freitag 7. Juli 2006, 13:53
von Rebecca
1.) Code in Python-Tags setzen
2.)

Code: Alles auswählen

import sys
sys.exit(0)

Verfasst: Freitag 7. Juli 2006, 13:56
von Neo
Danke :)

Verfasst: Freitag 7. Juli 2006, 17:10
von murph
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
^^

Verfasst: Freitag 7. Juli 2006, 17:28
von gerold
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
:-)

Verfasst: Freitag 7. Juli 2006, 17:43
von SigMA
generell sollte man aber immer versuchen das Programm so auslaufen zu lassen, dass kein sys.exit() benötigt wird!

SigMA

Verfasst: Freitag 7. Juli 2006, 18:09
von murph
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'.

Verfasst: Freitag 7. Juli 2006, 18:36
von gerold
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
:-)

Verfasst: Freitag 7. Juli 2006, 18:44
von murph
oh, python ist immer wieder für eine überraschung gut!
aber trotzdem mag ich lieber raise SystemExit.
Oder hat das irgendwelche nachteile?

Verfasst: Freitag 7. Juli 2006, 19:24
von gerold
murph hat geschrieben:Oder hat das irgendwelche nachteile?
Hi murph!

Ich glaube nicht.

lg
Gerold
:-)

Verfasst: Freitag 7. Juli 2006, 20:13
von newone_XXV.
Ähm und wo ist dann da der Unterschied zwischen dem Beiden? :?

Verfasst: Freitag 7. Juli 2006, 20:24
von murph
anscheinend kannst du beides benutzen,
ohne für dich einen unterschied zu bemerken

Verfasst: Samstag 8. Juli 2006, 16:46
von Leonidas
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.