Programm beenden

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.
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Programm beenden

Beitragvon Alpha-Phonix » Dienstag 10. Januar 2006, 13:28

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
Never touch a running system...
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Dienstag 10. Januar 2006, 15:16

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.
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Dienstag 10. Januar 2006, 15:31

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?
Never touch a running system...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 10. Januar 2006, 16:41

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).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Alpha-Phonix
User
Beiträge: 36
Registriert: Dienstag 10. Januar 2006, 13:24
Kontaktdaten:

Beitragvon Alpha-Phonix » Dienstag 10. Januar 2006, 16:47

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!
Never touch a running system...
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Dienstag 10. Januar 2006, 16:51

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 10. Januar 2006, 17:54

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'
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Beitragvon Gast » Freitag 13. Januar 2006, 08:04

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!
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 13. Januar 2006, 08:43

Anonymous hat geschrieben:ah ok vielen dank und jetzt wollte ich fragen, ob es einen Befehl gibt, der das Programm beendet?

sys.exit()

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

Beitragvon Gast » Freitag 13. Januar 2006, 11:20

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??!!
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 13. Januar 2006, 11:42

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 :)
Zuletzt geändert von jens am Freitag 13. Januar 2006, 11:47, insgesamt 1-mal geändert.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 13. Januar 2006, 11:43

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Freitag 13. Januar 2006, 16:05

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)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Yahoo [Bot]