ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
1881
1881
EMPFEHLEN
-
Hey,
ich habe folgendes Problem, ich will in einer while Schleife mehrere Eingabefelder erstellen, deren Werte natürlich auch in unterschiedlichen Variablen gespeichert werden (oder halt als Liste). Allerdings bekomm ich das nicht hin.
Code :1 2 3 4 5 6 7 8 9 10 11 12
Mannsname=[] i=0 row=4 column=0 MansT=Label(root, text="Mannschaftsnamen") MansT.grid(row=3, column=2) while i < manns: global Mannsname column=column+1 MannsnameE = Entry(root, width="18", textvariable=Mannsname[i]) MannsnameE.grid(row=row, column=column) i=i+1
Das war mein erster Versuch, scheitert mit folgender Fehlermeldung:
Code :1 2 3 4 5 6 7
Exception in Tkinter callback Traceback (most recent call last): File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__ return self.func(*args) File "C:\Python24\tipp.py", line 127, in create MannsnameE = Entry(root, width="18", textvariable=Mannsname[i]) IndexError: list index out of range
Ich weiß halt nicht, wie ich die Variable im Variablennamen anspreche
Danke im Vorraus..
Geändert von borussia (27.04.05 um 21:12 Uhr)
-
Wenn's dir als Liste reicht, hier mein Beispiel:
Code :1 2 3 4 5 6 7 8 9 10
>>> meinArray=[] >>> i=0 >>> while i < 5: meinArray.append("Karl") i=i+1 >>> print meinArray ['Karl', 'Karl', 'Karl', 'Karl', 'Karl'] >>>Man muss die Welt nicht verstehen, man muss sich nur in ihr zurechtfinden. - Albert Einstein
-
Erstmal danke für deine Antwort.. aber sorry, hab's etwas falsch formuliert und noch nicht vollständig..
Das Problem ist ja, dass die eingegeben Daten erst beim Klick auf nen Button ausgewertet werden und dann erst verarbeitet werden. Daher müssen die Eingabefelder, deren Anzahl von der Variable manns abhängt, verschiedene Variablen während des Durchlaufs der while-Schleife zugeordnet bekommen. Daher muss ich irgendwie auf die Variable "i" zugreifen, die sich ja bei jedem Durchlauf um 1 erhöht. Hoffe, du/ihr versteh(s)t, was ich meine..Geändert von borussia (27.04.05 um 20:17 Uhr)
-
OK, ich weis nicht ob ichs verstanden habe (ich bin so verdammt müde, aber will gleich noch was im TV schaun), vielleicht hilft das hier?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
>>> meinArray={} >>> i=0 >>> for name in ["Peter", "Pan"]: meinArray[i]=name i=i+1 >>> print meinArray {0: 'Peter', 1: 'Pan'} >>> print meinArray[0] Peter >>> print meinArray[1] PanMan muss die Welt nicht verstehen, man muss sich nur in ihr zurechtfinden. - Albert Einstein
-
Nochmals danke für deine Mühen.. wüsste aber nicht, wie ich es zu meinen Zwecken einsetzen könnte! *g*
-
Das ist aber genau das was du wolltest, siehe:
"Mannsname[i]=StringVar()"
Nur benutzt ich zum testen hier ne for Schleife. Vielleicht machst mir mal nen anschaubares Beispiel - oder du wartst halt bis jemand anders Antwortet
Man muss die Welt nicht verstehen, man muss sich nur in ihr zurechtfinden. - Albert Einstein
-
Ok, ich versuchs mal mit 'nem Beispiel zu erklären!
manns steht für die Anzahl der Mannschaften.. nehmen wir als Beispiel 2
Das heißt: Die while-Schleife läuft zweimal durch und erstellt 2 Textfelder. Diesen Textfeldern sollen über textvariable= Variablen zugeordnet werden. Die Variablen müssen verschiedene Namen haben, da die Variable sonst vom 2. Textfeld überschrieben würde. Daher habe ich versucht die Variable i, die sich bei jedem Durchlauf verändert, mit in den Variablennamen einzubauen bzw. sie als Listenindex zu benutzen, damit ich für jedes Textfeld eine eigenen Eintrag habe, den ich auch auswerten kann! Hoffe, du verstehst, was ich meine?!
-
Hier mein letzer Versuch bevor ich schlafen geh
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>>> Mannsname = {} >>> i = 0 >>> manns = 2 >>> while i < manns: Mannsname[i] = raw_input("Name: ") i = i+1 Name: Fabian Name: Borussia >>> print "Es wurden insgesamt", manns, "Datensaetze eingetragen:" Es wurden insgesamt 2 Datensaetze eingetragen: >>> i = 0 >>> while i < manns: print Mannsname[i] i = i+1 Fabian Borussia
Erklaerung? Ganz easy... Du hast nen Dict "Mannsname", dem fuegst du in der while-Schleife mit Mannsname[i] (welchem ja dem durchlauf entspricht) den Namen zu (hier: Fabian + Borussia). Du bekommst dann mit Mannsname[i] (wobei i eben alles zwischen 0 + 'manns' sein kann) - den Wert zurueck. Damit sollte es doch realisierbar sein?Man muss die Welt nicht verstehen, man muss sich nur in ihr zurechtfinden. - Albert Einstein
-
Habs mit ner Liste und ner for-Schleife gelöst.. Danke für die Hilfe
Ähnliche Themen
-
Python: Serial: Antwort in Variable schreiben ?
Von NanoBot im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 26.02.10, 02:29 -
[Python] Script ( .py ) aus Python Kommandozeile (python.exe) heraus öffnen
Von Hookah im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 16.12.09, 10:59 -
Python auf AIX 5.1
Von HydroKultur im Forum Linux & UnixAntworten: 1Letzter Beitrag: 02.12.08, 08:45 -
Python Programmier bzw. Python Entwicklerteam gesucht
Von ppzi im Forum Stellenangebote (entgeltlich)Antworten: 0Letzter Beitrag: 29.07.08, 11:00 -
[Python] Video tutorial zu dem Python Webframework TurboGears (20 Min )
Von Thomas Darimont im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 07.12.06, 13:28





Zitieren
Login





