Zufallsfkt für Strings < Python < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Hallo,
ich suche für Python eine Zufallsfunktion für Strings. Hab schon jede Menge probiert und im Internet finde ich nichts richtiges.
Mein letzter Versuch war:
a= str(random("Tipp1","Tipp2") )
Und dabei soll er sich einfach aussuchen, ob in a der String Tipp1 oder Tipp2 gespeichert werden soll.
Hoffe mir kann jemand schnell die Antwort sagen.
Danke schon mal!
LG ringo
|
|
|
|
Du könntest die folgenden Pseudocode Lösungen verwenden:
zeichenkette = ''
zeichen_array = 'a','b','c',...,'z'
zufallslaenge = zufallswert(6,10) // Wert zwischen 6 und 10
schleife von 1 bis zufallslaenge
zufallsindex = zufallswert(0,25)
zufallsbuchstabe = zeichen_array[zufallsindex]
zeichenkette = zeichenkette + zufallsbuchstabe
ende schleife
|
|
|
|
|
Okay, daran habe ich auch schon gedacht.
Aber gibt es da keine Funktion in Python für? Finde die einfach nicht.... Und mein Code ist eh schon lang genug
LG
|
|
|
|
|
Hallo!
random.random(a,b) liefert dir eine ZufallsZAHL zwischen a und b, du gibst ihm aber zwei Strings. Das kann nicht funktionieren.
Nimm doch lieber
random.choice(c)
wobei c eine Sequenz (z.B. eine Liste) ist. Also
c=["Tipp1", "Tipp2"]
Das liefert dir immer zufällig einen der beiden strings zurück.
Möglich ist sogar
c=[1,'a', [1,2,3]]
wobei dir eine Zahl, ein String, oder eine Liste zurück gegeben werden.
Solche Listen-Funktionen sind eine der Stärken von Python.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:21 Do 09.12.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:50 Di 07.12.2010 | Autor: | felixf |
Moin!
> Okay, daran habe ich auch schon gedacht.
> Aber gibt es da keine Funktion in Python für? Finde die
> einfach nicht....
Eine wichtige Frage ist: warum sollte Python eine solche Funktion haben?
Ich sehe keinerlei Bedarf fuer sowas, da sowieso jeder etwas anderes unter einem "zufaelligen" String versteht (allein schon von den moeglichen Verteilungen her -- die Methode von klingklong liefert zum Beispiel keine Gleichverteilung auf der Menge der Strings der Laenge 6 bis 10 mit kleinen Buchstaben).
LG Felix
|
|
|
|
|
Naja, in Python ist die Frage häufig eher, wie man es am einfachsten hin bekommt.
Wenn man keinerlei Bedarf an irgendwas sieht, dann braucht man auch kein Python.
Der Vorteil ist in meinen Augen grade, daß es viele Funktionen gibt, die ganz praktisch sind, obwohl man das gleiche Resultat mit anderen Funktionen und 3 weiteren Zeilen auch erreichen könnte.
Sowas in der Art, Zufallsstrings in zufälliger Länge zu erzeugen, ist vielleicht schon eher ungewöhnlich.
Aber hier gehts ja darum, aus einer Anzahl von Strings einen zufällig auszuwählen, Und das gibts eben schon, nur eben allgemeiner, weil nicht auf Strings beschränkt. Du kannst auch zufällig Klasseninstanzen zurück geben,wozu auch immer das nötig sein könnte.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:49 Mi 08.12.2010 | Autor: | felixf |
Moin Event_Horizon,
> Naja, in Python ist die Frage häufig eher, wie man es am
> einfachsten hin bekommt.
>
> Wenn man keinerlei Bedarf an irgendwas sieht, dann braucht
> man auch kein Python.
ich bezog mich darauf, warum man so etwas umbedingt als Standard-Library-Funktion haben sollte.
Damit etwas in die Standard-Library aufgenommen werden sollte, muss es schon einen gewissen Allgemeinheits-Grad haben.
Das kann man zwar auch mit Zufallsstrings machen -- man koennte eine Klasse schreiben, die in der Hinsicht sehr konfigurierbar ist, mit verschiedenen Verteilungen, Stringinhalten, Stringlaengen, etc. --, jedoch ist das doch ziemlich speziell und das Ergebnis ist trotzdem oft nicht das was in einem Programm dann gebraucht wird. Das Problem ist halt, dass "Zufallsstring" im Gegensatz zum Beispiel zu "Zufallszahl" sehr schwammig ist, und davon abgesehen auch weitaus seltener gebraucht wird als eine Zufallszahl.
> Aber hier gehts ja darum, aus einer Anzahl von Strings
> einen zufällig auszuwählen,
Ich bezog mich auf die erste Antwort und die Gegenfrage dadrauf (ob es dafuer eine Funktion in Python gibt); in der ersten Antwort wurde etwas praesentiert, was zufaellige Strings zufaelliger Laenge erzeugt.
Aus einer gegebenen, endlichen Menge ein Objekt auszuwaehlen ist wieder etwas anderes. Dass das in der Standard-Library vorhanden ist finde ich auch gut.
LG Felix
|
|
|
|