Seite 1 von 1

Programm beenden

Verfasst: Dienstag 10. Januar 2006, 13:28
von Alpha-Phonix
hey Leutz!

ich hab neu angefangen mit Python und hab ein erste Programm am start!
es soll bei eingaben von 0-9 in verschiedene Funktionen gehen! Klappt wunderbar. jetzt zu meiner frage:
wie kann ich es machen, dass das Prog nach drücken der "ESC"-Taste beendet wird?
if(eingabe== :?: ):
#programm beenden!

so soll es in etwas aussehen... muss ich da irgendwas mit dem ASCCII machen oder so?

Vielen Dank
Gruß Timo

Verfasst: Dienstag 10. Januar 2006, 15:16
von Joghurt
benutzt du raw_input? Wenn ja, dann geht das nicht, da raw_input immer eine Zeile liest.

Du musst schon ein bisschen mehr Informationen geben.

Verfasst: Dienstag 10. Januar 2006, 15:31
von Alpha-Phonix
also eigentlich benutze ich raw_input, aber wenns damit net geht, dann mach nen anderen vorschlag!

kann ich irgendwie ein zeichen abgreifen, dass ich gedrückt habe?

Verfasst: Dienstag 10. Januar 2006, 16:41
von Leonidas
Alpha-Phonix hat geschrieben:kann ich irgendwie ein zeichen abgreifen, dass ich gedrückt habe?
msvcrt.getch(), aber nur unter Windows (ich vermute mal, dass du Windows hast).

Verfasst: Dienstag 10. Januar 2006, 16:47
von Alpha-Phonix
ja hab ich!

kannst du mir grad in meinem beispiel sagen, wie die die taste "ESC" genau in der if-Schleife abgreifen kann?
wäre supi!

Verfasst: Dienstag 10. Januar 2006, 16:51
von Joghurt
Wahrscheinlich so (ungetestet)

Code: Alles auswählen

import msvcrt
while 1:
  ch = msvcrt.getch()
  print "Taste %c gedrückt" % ch
  if ch == '0':
    Menu0()
  elif ch == '1':
    Menu1()
  elif ...
  elif ch == 27: #ESC
    break

Verfasst: Dienstag 10. Januar 2006, 17:54
von Leonidas
Das geht etwa so:

Code: Alles auswählen

#!/usr/bin/python
# -*- encoding: latin-1 -*- 
import msvcrt

esc = '\x1b'

ch = msvcrt.getch()
if ch == esc:
    print 'Escape'
else:
    print 'Etwas anderes'

Verfasst: Freitag 13. Januar 2006, 08:04
von Gast
ah ok vielen dank und jetzt wollte ich fragen, ob es einen Befehl gibt, der das Programm beendet?

also wenn ich ESC drück gibt er das jetzt aus, was in der print Anweisung steht, dass soll jetzt mit einem Befehl ersetzt werden, der das Programm beendet!

Verfasst: Freitag 13. Januar 2006, 08:43
von jens
Anonymous hat geschrieben:ah ok vielen dank und jetzt wollte ich fragen, ob es einen Befehl gibt, der das Programm beendet?
sys.exit()

Verfasst: Freitag 13. Januar 2006, 11:20
von Gast
buar geil hat geklappt vielen dank! :D

gibt es in python auch eine clear-screen funktion?

also wenn ich in meinem menü die 2 drück für konturen berechnen, dass er den screen wieder leert??!!

Verfasst: Freitag 13. Januar 2006, 11:42
von jens
Ich denke das kann man über curses machen, aber IMHO nur unter Linux... Ansonsten macht es einfach unter windows mit os.system("cls")

EDIT: Stimmt: Nicht clear, sondern cls :)

Verfasst: Freitag 13. Januar 2006, 11:43
von Leonidas
Anonymous hat geschrieben:gibt es in python auch eine clear-screen funktion?
Nein nicht wirklich. Unter Windows kannst du das Programm cls starten, welches das tut oder das Modul WConIO. Unter Linux geht das wohl mit curses.

Verfasst: Freitag 13. Januar 2006, 16:05
von Joghurt
Leonidas hat geschrieben:Unter Linux geht das wohl mit curses.
Oder in 99% der Fälle auch mit

Code: Alles auswählen

import sys
sys.stdout.write("\n\033[2K\033[1d")
"print" würde auch gehen, nur wärst du danach in der 2. Zeile bzw. in der 2. Spalte der ersten Zeile (wenn du print "...", schreibt)