Eingabefelder je nach Gebrauch hinzufügen und löschen

Fragen zu Tkinter.
Antworten
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

Achso, ok danke ;)
Ich hätte dann noch die Frage wie man Strings in Listen in Floats umwandeln kann.
Ich habe mal im Internet nachgeschaut fand aber nur folgenden Hinweis:

Code: Alles auswählen

map(float, liste)
[float(s) for s in liste]
In Idle gibts dann folgende Ausgabe:

Code: Alles auswählen

>>> los = ["1.4", "5"]
>>> map(float, los)
[1.3999999999999999, 5.0]
>>> [float(s) for s in los]
[1.3999999999999999, 5.0]
Das sieht ja eigentlich schn ganz gut aus, allerdings wenn ich die beiden Elemente addiere kommt was falsches raus:

Code: Alles auswählen

>>> los[0]+los[1]
'1.45'
>>> los[0]
'1.4'
>>> a = los[0]
>>> b = los[1]
>>> a+b
'1.45'
Auch wenn ich probiere sollch eine Liste zu sortieren mit sort(), ändert sich nichts. Woran liegt das? Danke!

EDIT: Es sieht so aus, als würde idle die Elemente noch als String betrachten, und fügt sie so zusammen... Lieg ich da richtig?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du hast ja eine *neue* Liste mit Zahlen erstellt und diese an keinen Namen gebunden. Dadurch verfällt sie und du rechnest mit der alten Liste weiter.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

achsoo stimmt ja. Vielen Dank! IDLE wertet das ja immer gleich aus... Hat mich etwas verwirrt ;) Ich glaub das wars erstmal mit Fragen. Danke an alle, melde mich nochmal falls ich doch noch ein Problem habe!
secretwz
User
Beiträge: 40
Registriert: Mittwoch 14. Januar 2009, 22:01

So jetzt habe ich doch noch eine Frage... Ich habe noch ein Zufallprogramm gebaut wo man Zahlen zufällig ausgeben kann. Ist allerdings nicht so wichtig, denn ich habe alles gut hinbekommen dank dieser vielen Hilfen ;)
Jetzt wollte ich jedoch das Design noch ein wenig verändern um es übersichtlicher zu gestalten. Dafür wollte ich grid() benutzen. Wenn ich allerdings w.grid(row=y, column=x) statt w.pack() benutze, und das Programm starten will, startet zwar die Konsole, sie zeigt jedoch nichts an, nicht einmal ein Fehler, und das Programm erscheint auch nicht. Kann die Konsole dann nur noch schließen...

PS:
Und eine allgemeine Frage. Wie kann man .py Datein in .py Datein öffnen? Also wenn ich ein Programm habe wo eine Liste von verschiedenen Programmen angezeigt werden als Buttons. Und dann möchte ich wenn ich auf einen der Buttons klicke, dass das jeweilige Programm startet.
Ich habe os.startfile("datei.py") ausprobiert, allerdings zeigt er dann an dass "os" die methode "startfile" nicht besitzt... Und auch in meiner Python Doc stand nichts davon. Dann habe ich es noch mit execfile() versucht. Dadurch klappte es auch, allerdings kfunktionierte das geöffnete Programm dann nicht wirklich.. Hatte irgendwelche global-Fehler. Würde mich freuen wenn mir noch jemand helfen könnte!
Antworten