Seite 1 von 1

variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 16:41
von MalcolmYoung
Hi Leute,

:arrow: ich würde gerne den Variablenwert einer Variable als Bestandteil des Variablennamens einer anderen Variable vergeben....

könnt ihr mir sagen wie??? :K

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 16:49
von Hyperion
MalcolmYoung hat geschrieben:Hi Leute,
:arrow: ich würde gerne den Variablenwert einer Variable als Bestandteil des Variablennamens einer anderen Variable vergeben....
Oha... riecht nach schwerem Designfehler! :shock:

Beschreibe mal etwas ausführlicher, was Du genau erreichen willst. Da gibt es def. einen sinnvollen Weg!

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 16:49
von BlackJack
@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.

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 17:05
von MalcolmYoung
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'

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 17:10
von MalcolmYoung
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:

Code: Alles auswählen

for i in range(1, ende+1):
so jetz will ich eben so und sooft aus einer vorher definierten liste (enthält das ABC) einen Buchstaben auswählen, indem ich per

Code: Alles auswählen

index = random.randint(0,25)
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:

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] 
dann die variablen b... bis b... zu einem Wort zusammenfügen

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 17:31
von Hyperion
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 :

Code: Alles auswählen

In [3]: string.ascii_letters
Out[3]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
- dazu noch die join()-Methode eines Strings

Damit sollte das imho gut zu realisieren sein!

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 17:39
von b.esser-wisser
@OP: so?

Code: Alles auswählen

b=[random.choice(string.ascii_lowercase) for _ in range(int(input("Wieviele Buchstaben?")))]
:twisted:
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 :(

Re: variablenwert als variablennamen- WIE???

Verfasst: Samstag 30. Oktober 2010, 17:42
von jerch
"sample" kennt aber keine Dopplungen. Ich glaube, der OP sucht eher "random.choice":

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'
PS: zu langsam ;)