Vielleicht ist es eine dumme Frage, aber ich komm einfach nicht weiter.
In einer Schleife will ich jedesmal eine Variable definieren, diese soll als Namen immer eine fortlaufende Zahl und einen Buchstaben haben.
kurzes Beispiel ohne Schleife:
word = "ABC"
now = 1
Jetzt will ich eine Variable mit dem Namen "word1", egal wie ich das anstelle es kommt immer der Fehler: "Can't assign to operator"
Ich hab es mit folgenden Methoden versucht:
word%d = word % now
"word" + now = word
Irgendeine Möglichkeit muss es doch geben...
Can't assign to operator
Hoi Marco,
warum in drei Teufels Namen willst Du Variablen SO in einer Schleife definieren? Vielleicht hat Jens ja richtig geraten, dann ist ja gut, aber ansonsten schreibe uns doch mal klar, was Du eigentlich erreichen willst.
Ein Tipp aber mal prinzipiell: Du kannst nicht einen String mit einem Integer verketten. Das geht nicht (gibt im TraceBack so etwas: TypeError: cannot concatenate 'str' and 'int' objects). Was Du machen mußt ist ein type cast; in Python ganz einfach:
Nur was das soll ist mir im Zusammenhang mit Deiner Frage schleierhaft.
Viel Glück.
Gruß,
Christian
warum in drei Teufels Namen willst Du Variablen SO in einer Schleife definieren? Vielleicht hat Jens ja richtig geraten, dann ist ja gut, aber ansonsten schreibe uns doch mal klar, was Du eigentlich erreichen willst.
Ein Tipp aber mal prinzipiell: Du kannst nicht einen String mit einem Integer verketten. Das geht nicht (gibt im TraceBack so etwas: TypeError: cannot concatenate 'str' and 'int' objects). Was Du machen mußt ist ein type cast; in Python ganz einfach:
Code: Alles auswählen
x = 'abc'
i = 1
y = x + str(i)
#oder
y = "%s%d" % (x,i)
Viel Glück.
Gruß,
Christian
Dann sag ich mla wieso ich das ausgerechnet in einer Schleife haben will.
Ich will aus einer Textdatei jede Zeile in eine Variable speichern.
Also es sollen am Ende gleichviele Variablen wie Zeilen erstellt worden sein. Mir fällt keine andere Möglichkeit ein als das mit einer Schleife zu lösen.
Ich will aus einer Textdatei jede Zeile in eine Variable speichern.
Also es sollen am Ende gleichviele Variablen wie Zeilen erstellt worden sein. Mir fällt keine andere Möglichkeit ein als das mit einer Schleife zu lösen.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Warum packst du nicht einfach jede Zeile in eine Liste ???
Code: Alles auswählen
f = file( "beispiel.txt", "r" )
linelist = f.readlines()
f.close
print linelist
# \n löschen
linelist = [i.strip() for i in linelist]
print linelist
Hoi nochmal,
was der Jens schreibt ist gut und schön, allerdings frage ich mich, was Du denn mit den Daten machen willst. Natürlich ist es besser mit einer Liste als mit einer variablen Zahl von Variablen zu arbeiten, aber nachdem Du zunächst diese Herangehensweise wählen wolltest: Vielleicht geht es noch einfacher?
Ggf. wolltest Du Deine Variablen gleich weiterverarbeiten. In diesem Falle könntest Du auch folgendes probieren:
Das ist im Übrigen auch kein Problem mit großen Dateien, was bei readlines ggf. zu einer starken Verzögerung führen kann.
Vielleicht hilft Dir das weiter. Würde mich freuen.
Gruß,
Christian
PS f.close ist einfach eine builtin Methode, aber noch ein "()" dahinter und es wird funktionieren
.
was der Jens schreibt ist gut und schön, allerdings frage ich mich, was Du denn mit den Daten machen willst. Natürlich ist es besser mit einer Liste als mit einer variablen Zahl von Variablen zu arbeiten, aber nachdem Du zunächst diese Herangehensweise wählen wolltest: Vielleicht geht es noch einfacher?
Ggf. wolltest Du Deine Variablen gleich weiterverarbeiten. In diesem Falle könntest Du auch folgendes probieren:
Code: Alles auswählen
for line in file_object:
#irgendwas tun mit line
Vielleicht hilft Dir das weiter. Würde mich freuen.
Gruß,
Christian
PS f.close ist einfach eine builtin Methode, aber noch ein "()" dahinter und es wird funktionieren

- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Wow! Das wußte ich noch garnicht, damit ist ja einiges einfacher:
Code: Alles auswählen
f = file( "BlaBla.txt", "r" )
for i in f:
print i
f.close()
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Und wie willst du auf diese Weise das file-Objekt schließen?jens hat geschrieben:Code: Alles auswählen
for i in file( "BlaBla.txt", "r" ): print i

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Es gibt keine 'type casts' in Python. Man kann aus einem vorhanden Objekt durch konvertieren ein neues erstellen, aber der Typ eines existierenden Objektes lässt sich nicht ändern.CM hat geschrieben:Was Du machen mußt ist ein type cast; in Python ganz einfach:
Da hast Du natürlich Recht: typecasting ist ein Begriff, der anderweitig schon besetzt ist und explizit die Typumwandlung eines best. Objektes meint.
Ich habe laxerweise Typumwandlung und Konversion zu einem anderen Objekt in einen Topf geworfen. Soll nicht wieder vorkommen.
Gruß,
Christian
Ich habe laxerweise Typumwandlung und Konversion zu einem anderen Objekt in einen Topf geworfen. Soll nicht wieder vorkommen.

Gruß,
Christian