Verfasst: Montag 21. Januar 2008, 10:34
Wenn die 50 ``while``-Schleifen alle fast gleich aussehen schreibt man natürlich eine Funktion dafür.
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
def floatx(value):
try:
value = float(value)
return value
break
except ValueError:
print "Na das ist aber keine Zahl!"
while True:
eingabe = raw_input("Eingabewert? ")
ausgabe=floatx(eingabe)
print ausgabe
Code: Alles auswählen
wert = float_input('Eingabewert? ')
Code: Alles auswählen
radius = float_input('Bitte den Radius eingeben: ')
hoehe = float_input('Und die Hoehe: ')
Code: Alles auswählen
def float_input(value):
while True:
try:
value = float(value)
return value
break
except ValueError:
print "Na das ist aber keine Zahl!"
radius = float_input('Bitte den Radius eingeben: ')
hoehe = float_input('Und die Hoehe: ')
print radius
print hoehe
Code: Alles auswählen
def float_input(prompt):
while True:
try:
return float(raw_input(prompt))
except ValueError:
print "Na das ist aber keine Zahl!"
radius = float_input('Bitte den Radius eingeben: ')
hoehe = float_input('Und die Hoehe: ')
print radius
print hoehe
BlackJack hat geschrieben:Das "einfachste" wäre es wahrscheinlich so eine "Konsole" aus einem `Text`-Widget für die Ausgaben und einem `Entry` für die Eingaben zu programmieren, und das über Sockets mit Deinem ``print``/`raw_input()` verwendenden Quelltext so zu verbinden, dass `sys.stdin` und `sys.stdout` mit dieser Konsole verbunden sind.
Das Hauptproblem ist, dass bei ``print``/`rawinput()` Dein Programm die zeitliche Abfolge bestimmt, GUIs aber ereignisbasiert sind, d.h. der Anwender letztendlich bestimmt wann welcher Code ausgeführt wird. Beides zu mischen verträgt sich nicht so besonders gut.
Oder Du ersetzt `raw_input()` durch eine Funktion die jedesmal ein Fenster mit dem Prompt und einem Entry aufmacht. Das ist zwar einfacher, aber für den Benutzer eine ziemlich lästige GUI.
Im Idealfall hast Du beim bisherigen Quelltext Anwendungslogik und UI voneinander getrennt. Dann kannst Du Deine GUI Stück für Stück aufbauen. Es ist zwar dann erst zum Schluss der ganze Funktionsumfang verfügbar, aber es gibt immer eine funktionierende Teilmenge davon.
Also wenn das alles ist, brauchst du nur die Ausgaben des Programmes abfangen und ausgeben. Bitte beachte aber, das es nicht so einfach ist, dem Programm Eingaben zu verpassen, wenn man sie nicht gleich als Argument uebergeben kann!mathi hat geschrieben:also mein Programm habe ich mir so vorgestellt:
eine Reihe von Buttons, jeder Button startet ein Programm, welches aber in einer Konsole läuft. mehr wollte ich eigentlich nicht. Habe ich eine Chance das mit geringem Aufwand zu schaffen? sonst bleibt die Programmauswahl über eine Variable j=1,2,...,n
edit: ich könnte mir auch eine GUI vorstellen, bei der auf Knopfdruck eine konsole geöffnet wird: in Windows ähnlich dem Befehl cmd und in linux z.B. konsole (KDE)