Existe-t-il un moyen de générer des lettres aléatoires en Python (comme random.randint mais pour les lettres)? La fonctionnalité de plage de random.randint serait bien, mais avoir un générateur qui ne produit qu'une lettre aléatoire serait mieux que rien.
python
random
python-3.x
Kudu
la source
la source
from string import ascii_letters, digits
etfrom random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
la source
ascii_letters
,ascii_uppercase
etascii_lowercase
.pour générer y nombre de caractères aléatoires
la source
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
un ensemble unique de valeurs à partir de l'entrée, ce qui n'est pas le même querandom.choice()
?random.choice
etrandom.randint
retournent une seule valeur. Vous pouvez également utilisernumpy.random.choice
pour donner un ensemble unique si vous ajoutez replace = False, comme ceci:numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
la source
Une autre façon, par souci d'exhaustivité:
Utilisez le fait que
ascii
«a» vaut 97 et qu'il y a 26 lettres dans l'alphabet.Lors de la détermination de la limite supérieure et inférieure de l'
random.randrange()
appel de fonction, rappelez-vous qu'ellerandom.randrange()
est exclusive sur sa limite supérieure, ce qui signifie qu'elle ne générera jamais qu'un entier jusqu'à 1 unité de moins que la valeur fournie.la source
chr(random.randrange(97, 97 + 26 - 1))
?chr(random.randrange(97, 97 + 26)
.random.randrange()
est exclusif sur sa borne supérieure, ce qui signifie que pour obtenir toute la plage de caractères97 - 122
, l'argument passé doit être123
.97 + 26
est utilisé.Vous pouvez l'utiliser pour obtenir une ou plusieurs lettre (s) aléatoire (s)
la source
random.choices
?help(random.choices)
déclareIf the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Cela signifierait que la distribution est la distribution uniforme discrète ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).Vous pouvez simplement faire une liste:
la source
la source
la source
la source
Vous pouvez utiliser
la source
Vous pouvez obtenir des chaînes aléatoires comme ceci:
la source
string.ascii_letters
2. Vous pouvez sauvegarder la compréhension de la liste en utilisantkeylist = random.choices(base_str(), k=KEY_LEN)
3. Pourquoi avoirbase_str
comme fonction et pas abase_str = string.ascii_letters+string.digits
?la source
Toutes les réponses précédentes sont correctes, si vous recherchez des caractères aléatoires de différents types (c'est-à-dire des caractères alphanumériques et spéciaux), alors voici un script que j'ai créé pour démontrer différents types de création de fonctions aléatoires, il a trois fonctions une pour les nombres, alpha- caractères et caractères spéciaux. Le script génère simplement des mots de passe et n'est qu'un exemple pour illustrer différentes manières de générer des caractères aléatoires.
Résultat:
la source
eh bien, c'est ma réponse! Ça marche bien. Mettez simplement le nombre de lettres aléatoires que vous voulez dans 'nombre' ... (Python 3)
la source
la source
Mon morceau de code trop compliqué:
Il génère essentiellement un nombre aléatoire sur 26, puis se convertit en sa lettre correspondante. Cela pourrait être amélioré, mais je ne suis qu'un débutant et je suis fier de ce morceau de code.
la source
print(chr(96 + letter))
, nonif
- l'elif
enfer est nécessairePeut-être que cela peut vous aider:
la source
@AAADCCEHFGJLDJF@EHFMHKWUR
Placez un python sur le clavier et laissez-le rouler sur les lettres jusqu'à ce que vous trouviez votre combo aléatoire préféré Je plaisante!
la source