Mit Escape das ganze Script 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.
Antworten
Hackenpiep
User
Beiträge: 5
Registriert: Montag 12. August 2019, 16:30

Dienstag 13. August 2019, 16:40

Moin und zwar suche ich eine möglichkeit mein Skript jeder zeit duch das betätigen der Escape-Taste zubeenden, geht das
LG Hackenpiep
(Mit dem Skript soll der satz des pythagoras ausgerechnet werden )
ich nehme auch gerne sonstige Verbesserungsvorschläge an :D


Bilder meines Skrips
https://www.bilder-upload.eu/bild-1c7dc ... 9.jpg.html
https://www.bilder-upload.eu/bild-5bb73 ... 6.jpg.html
Benutzeravatar
__blackjack__
User
Beiträge: 3872
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 13. August 2019, 16:49

Erster Verbesserungsvorschlag wäre das Skript als Quelltext in den Beitrag zu stellen, statt als Bild(er), und die dann auch noch 90° gedreht damit es noch schwieriger/aufwändiger wird das zu lesen.

Ansonsten ist das mit der Escapetaste zwar möglich, aber aufwändig und plattformabhängig. Strg+C ist üblicherweise die Möglichkeit die man zum Abbrechen von Kommandozeilenprogrammen verwendet, weil da das Terminal ein Signal auslöst das Python dann zu einer `KeyboardInterrupt`-Ausnahme macht.
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
Hackenpiep
User
Beiträge: 5
Registriert: Montag 12. August 2019, 16:30

Dienstag 13. August 2019, 17:29

ja das mit dem Bild werde ich noch verbessern....und würdes du mir denn den code für die Escape funktion schicken, weil wenn ja würde ich dir morgen noch den code schicken
Lg Hackenpiep
Sirius3
User
Beiträge: 10223
Registriert: Sonntag 21. Oktober 2012, 17:20

Dienstag 13. August 2019, 17:35

Bei Strg+C mußt Du nichts machen, das funktioniert automatisch.
Hackenpiep
User
Beiträge: 5
Registriert: Montag 12. August 2019, 16:30

Dienstag 13. August 2019, 17:35

__blackjack__ hat geschrieben:
Dienstag 13. August 2019, 16:49
Erster Verbesserungsvorschlag wäre das Skript als Quelltext in den Beitrag zu stellen, statt als Bild(er), und die dann auch noch 90° gedreht damit es noch schwieriger/aufwändiger wird das zu lesen.

Ansonsten ist das mit der Escapetaste zwar möglich, aber aufwändig und plattformabhängig. Strg+C ist üblicherweise die Möglichkeit die man zum Abbrechen von Kommandozeilenprogrammen verwendet, weil da das Terminal ein Signal auslöst das Python dann zu einer `KeyboardInterrupt`-Ausnahme macht.
ja das mit dem Bild werde ich noch verbessern....und würdes du mir denn den code für die Escape funktion schicken, weil wenn ja würde ich dir morgen noch den code schicken
Lg Hackenpiep
Nach oben
Hackenpiep
User
Beiträge: 5
Registriert: Montag 12. August 2019, 16:30

Mittwoch 14. August 2019, 06:13

Sirius3 hat geschrieben:
Dienstag 13. August 2019, 17:35
Bei Strg+C mußt Du nichts machen, das funktioniert automatisch.
Nein also ich schreibe das Programm in Pycharm und da geht es nicht
(Hatte ich auch schon versucht ;D)
LG hackenpiep
Benutzeravatar
sparrow
User
Beiträge: 1289
Registriert: Freitag 17. April 2009, 10:28

Mittwoch 14. August 2019, 06:35

Dann schau doch mal in das Handbuch von PyCharm, welchen Short-Key sie für das Beenden des Programms vorgesehen haben. Ctrl+C funktioniert in der Konsole für Konsolenprogramme. Pycharm ist eine GUI und findet, du könntest auch CTRL+C für "copy" verwenden.
Sirius3
User
Beiträge: 10223
Registriert: Sonntag 21. Oktober 2012, 17:20

Mittwoch 14. August 2019, 06:37

Ich habe gerade kein Pycharm hier, aber wenn das so ist, dann hat es eine schlechte Terminal-Emulation, und dann werden andere Tricks, die irgendwie die Terminaleingabe verbiegen höchstwahrscheinlich auch nicht funktionieren. Oder ist einfach nur das Terminal-Fenster nicht aktiv, so dass Deine Tastendrücke sonstwo landen? PyCharm hat ansonsten ja auch einfach den Beenden-Knopf.
Hackenpiep
User
Beiträge: 5
Registriert: Montag 12. August 2019, 16:30

Mittwoch 14. August 2019, 06:49

Sirius3 hat geschrieben:
Mittwoch 14. August 2019, 06:37
Ich habe gerade kein Pycharm hier, aber wenn das so ist, dann hat es eine schlechte Terminal-Emulation, und dann werden andere Tricks, die irgendwie die Terminaleingabe verbiegen höchstwahrscheinlich auch nicht funktionieren. Oder ist einfach nur das Terminal-Fenster nicht aktiv, so dass Deine Tastendrücke sonstwo landen? PyCharm hat ansonsten ja auch einfach den Beenden-Knopf.
Eigentlich sollte die Escape-funktion für den Nutzer sein, also das er das Programm jeder Zeit schließen kann auch wenn es noch läuft....und darum ist das mit dem Terminal schwierig oder gibt es da doch einen Weg?
Zur Not würde ich im QtDisgner einen oberflächliche mit "schließen-butten" erstellen
(Will ich aber eigentlich nicht)
LG hackenpiep
Benutzeravatar
__blackjack__
User
Beiträge: 3872
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mittwoch 14. August 2019, 08:52

@Hackenpiep: Wer ist denn hier „der Nutzer“? Programme laufen ja nicht in einer IDE. Kein normaler *Nutzer* eines *Konsolenprogramms* wird PyCharm installieren, nur um das Programm auszuführen. Nutzer werden Konsolenprogramme im Terminal ausführen, weil genau dafür sind sie da. Und auch als Entwickler sollte man das tun, um sicherzustellen, dass das Programm nicht nur in der IDE funktioniert, sondern auch in der Umgebung für die es geschrieben wurde.

Wenn Du kein Konsolenprogramm schreiben willst, dann müsstest Du ein GUI-Programm schreiben, das funktioniert aber *deutlich* anders als so ein linearer Programmablauf wie Du ihn jetzt hast. Für eine GUI solltest Du am besten vorher schon mit objektorientierter Programmierung (OOP) vertraut sein, denn die braucht man dafür, und es könnte leichter sein erst OOP und dann den ereignisbasierten Programmablauf von GUIs zu lernen, als beiden auf einmal.
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
Antworten