Gibt es eine Möglichkeit, zufällige Buchstaben in Python zu generieren (wie random.randint, aber für Buchstaben)? Die Bereichsfunktionalität von random.randint wäre nett, aber ein Generator, der nur einen zufälligen Buchstaben ausgibt, wäre besser als nichts.
python
random
python-3.x
Kudu
quelle
quelle
from string import ascii_letters, digits
undfrom random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
quelle
ascii_letters
,ascii_uppercase
undascii_lowercase
.um y Anzahl von zufälligen Zeichen zu erzeugen
quelle
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
eine Rückkehr einzigartigen Satz von Werten aus dem Eingang, der als nicht das gleiche istrandom.choice()
?random.choice
undrandom.randint
geben einen einzelnen Wert zurück. Sie können auch verwendennumpy.random.choice
, um einen eindeutigen Satz zu geben, wenn Sie replace = False hinzufügen, wienumpy.random.choice(string.ascii_lowercase, size=5, replace=False)
quelle
Ein anderer Weg der Vollständigkeit halber:
Verwenden Sie die Tatsache, dass
ascii
'a' 97 ist und das Alphabet 26 Buchstaben enthält.Denken Sie bei der Bestimmung der Ober- und Untergrenze des
random.randrange()
Funktionsaufrufs daran, dass dieserandom.randrange()
ausschließlich an der Obergrenze liegt. Dies bedeutet, dass immer nur eine Ganzzahl generiert wird, die bis zu 1 Einheit unter dem angegebenen Wert liegt.quelle
chr(random.randrange(97, 97 + 26 - 1))
?chr(random.randrange(97, 97 + 26)
.random.randrange()
ist an seiner oberen Grenze exklusiv, was bedeutet, dass97 - 122
das übergebene Argument sein muss , um den gesamten Zeichenbereich zu erhalten123
.97 + 26
verwendet wird.Sie können dies verwenden, um einen oder mehrere zufällige Buchstaben zu erhalten.
quelle
random.choices
?help(random.choices)
besagtIf the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Dies würde bedeuten, dass die Verteilung die diskrete gleichmäßige Verteilung ist ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).Sie können einfach eine Liste erstellen:
quelle
quelle
quelle
quelle
Sie können verwenden
quelle
Sie können zufällige Zeichenfolgen wie folgt erhalten:
quelle
string.ascii_letters
2. Sie können das Listenverständnis speichern, indem Siekeylist = random.choices(base_str(), k=KEY_LEN)
3. Warumbase_str
als Funktion und nicht alsbase_str = string.ascii_letters+string.digits
?quelle
Alle vorherigen Antworten sind korrekt. Wenn Sie nach zufälligen Zeichen verschiedener Typen (z. B. alphanumerische Zeichen und Sonderzeichen) suchen, ist hier ein Skript, das ich erstellt habe, um verschiedene Arten der Erstellung zufälliger Funktionen zu demonstrieren. Es hat drei Funktionen, eine für Zahlen, Alpha- Zeichen und Sonderzeichen. Das Skript generiert einfach Passwörter und ist nur ein Beispiel, um verschiedene Möglichkeiten zum Generieren von zufälligen Zeichen zu demonstrieren.
Ergebnis:
quelle
Nun, das ist meine Antwort! Es funktioniert gut. Geben Sie einfach die Anzahl der gewünschten zufälligen Buchstaben in 'number' ein ... (Python 3)
quelle
quelle
Mein übermäßig komplizierter Code:
Es generiert im Grunde eine Zufallszahl aus 26 und wandelt sie dann in den entsprechenden Buchstaben um. Dies könnte trotzig verbessert werden, aber ich bin nur ein Anfänger und ich bin stolz auf diesen Code.
quelle
print(chr(96 + letter))
, neinif
-elif
Hölle wird benötigtVielleicht kann Ihnen das helfen:
quelle
@AAADCCEHFGJLDJF@EHFMHKWUR
Legen Sie eine Python auf die Tastatur und lassen Sie ihn über die Buchstaben rollen, bis Sie Ihre bevorzugte zufällige Kombination finden. Nur ein Scherz!
quelle