Hi Leute,
ich würde gerne den Variablenwert einer Variable als Bestandteil des Variablennamens einer anderen Variable vergeben....
könnt ihr mir sagen wie??? :K
variablenwert als variablennamen- WIE???
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Oha... riecht nach schwerem Designfehler!MalcolmYoung hat geschrieben:Hi Leute,
ich würde gerne den Variablenwert einer Variable als Bestandteil des Variablennamens einer anderen Variable vergeben....
Beschreibe mal etwas ausführlicher, was Du genau erreichen willst. Da gibt es def. einen sinnvollen Weg!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
@MalcolmYoung: Nein das möchtest Du nicht machen. Du möchtest Dictionaries verwenden. Denn genau das würdest Du letztendlich mit "variablen Variablennamen" auch machen, nur viel umständlicher.
-
- User
- Beiträge: 10
- Registriert: Sonntag 24. Oktober 2010, 09:50
Na toll jetzt hab ich drei viertel von der antwort getippt und dann kommst du....
Danke jetzt fällts mir wie schuppen von den Augen
Greetzzz Mal'
Danke jetzt fällts mir wie schuppen von den Augen
Greetzzz Mal'
-
- User
- Beiträge: 10
- Registriert: Sonntag 24. Oktober 2010, 09:50
Nein, ich komm trotzdem net drauf...
Aaalsoo:
Ein Benutzer soll auswählen können aus wievielen Buchstaben ein zufälliger String bestehen soll.
Also ein input namens ende in der die anzahl eigegeben wird und dann eine for schleife bei der dann halt:
so jetz will ich eben so und sooft aus einer vorher definierten liste (enthält das ABC) einen Buchstaben auswählen, indem ich per
eine Zahl erzeuge und dann mit dieser eine position in der ABC-Liste anspreche
so und das dann in einer variable speichern...
das muss ich natürlich sooft machen wie's der benutzer will, also z.B. 6mal
Also in den variablen b1-b6 speichern...
jetzt würde ich halt gerne in der forschleife:
dann die variablen b... bis b... zu einem Wort zusammenfügen
Aaalsoo:
Ein Benutzer soll auswählen können aus wievielen Buchstaben ein zufälliger String bestehen soll.
Also ein input namens ende in der die anzahl eigegeben wird und dann eine for schleife bei der dann halt:
Code: Alles auswählen
for i in range(1, ende+1):
Code: Alles auswählen
index = random.randint(0,25)
so und das dann in einer variable speichern...
das muss ich natürlich sooft machen wie's der benutzer will, also z.B. 6mal
Also in den variablen b1-b6 speichern...
jetzt würde ich halt gerne in der forschleife:
Code: Alles auswählen
for i in range(1,ende+1):
x=random.randint(0,25)
b(hier müsste der wert von 1 hin, also z.B. 3) = listemitabc[x]
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das geht doch relativ einfach:
- schau Dir mal "sample" aus dem random-Modul an
- Du willst Die zufälligen Zeichenfolgen in einer Liste speichern; wenn diese dem benutzer zuzuordnen sein soll, dann muss diese in einem Dictionary hinter dem benutzer als Schlüssel abgelegt werden
- Du willst Dir mal das string-Modul angucken :
- dazu noch die join()-Methode eines Strings
Damit sollte das imho gut zu realisieren sein!
- schau Dir mal "sample" aus dem random-Modul an
- Du willst Die zufälligen Zeichenfolgen in einer Liste speichern; wenn diese dem benutzer zuzuordnen sein soll, dann muss diese in einem Dictionary hinter dem benutzer als Schlüssel abgelegt werden
- Du willst Dir mal das string-Modul angucken :
Code: Alles auswählen
In [3]: string.ascii_letters
Out[3]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Damit sollte das imho gut zu realisieren sein!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- b.esser-wisser
- User
- Beiträge: 272
- Registriert: Freitag 20. Februar 2009, 14:21
- Wohnort: Bundeshauptstadt B.
@OP: so?
Deine Variablen sind jetzt "b[0]" und nicht "b0", aber da gewöhnt man sich (besser!) dran.
ps.: plus "".join(b), falls du das brauchst...
edit2: ich mach beim editieren mehr Tüpos rein als raus
Code: Alles auswählen
b=[random.choice(string.ascii_lowercase) for _ in range(int(input("Wieviele Buchstaben?")))]
Deine Variablen sind jetzt "b[0]" und nicht "b0", aber da gewöhnt man sich (besser!) dran.
ps.: plus "".join(b), falls du das brauchst...
edit2: ich mach beim editieren mehr Tüpos rein als raus
Zuletzt geändert von b.esser-wisser am Samstag 30. Oktober 2010, 17:51, insgesamt 2-mal geändert.
"sample" kennt aber keine Dopplungen. Ich glaube, der OP sucht eher "random.choice":
PS: zu langsam
Code: Alles auswählen
>>> import random, string
>>> rand_string = lambda x : ''.join(random.choice(string.ascii_lowercase) for _ in xrange(x))
>>> rand_string(5)
'ebcdg'