150 votes

Comment générer un nombre aléatoire avec une quantité spécifique de chiffres ?

Disons que j'ai besoin d'un nombre à 3 chiffres, donc ce serait quelque chose comme :

>>> random(3)
563

or

>>> random(5)
26748
>> random(2)
56

53voto

osman Points 158

Si vous le souhaitez sous forme de chaîne (par exemple, un numéro de téléphone à 10 chiffres), vous pouvez utiliser ceci :

n = 10
''.join(["{}".format(randint(0, 9)) for num in range(0, n)])

5voto

Daniel G Points 12647

Vous pourriez vous écrire un peu de fonction pour faire ce que vous voulez :

import random
def randomDigits(digits):
    lower = 10**(digits-1)
    upper = 10**digits - 1
    return random.randint(lower, upper)

En gros, 10**(digits-1) vous donne le plus petit nombre à {digit}chiffres, et 10**digits - 1 vous donne le plus grand nombre à {digit}chiffres (qui se trouve être le plus petit nombre à {digit+1}chiffres moins 1 !). Ensuite, nous prenons juste un entier aléatoire de cette plage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X