Articles

Randrange aléatoire Python() et randint() pour générer un nombre entier aléatoire dans une plage

Dans cet article, nous verrons comment utiliser les fonctions Python random.randrange() et random.randint() pour générer un nombre aléatoire. En utilisant les fonctions randrange() et randint() d’un module aléatoire, nous pouvons générer un entier aléatoire dans une plage. Par exemple, vous souhaitez générer un nombre entier aléatoire compris entre 0 et 9, puis vous pouvez utiliser ces fonctions.

Objectifs de cette leçon. Dans cette leçon, vous apprendrez à ::

  • Générer un entier aléatoire dans une plage en utilisant randrange() et randint()
  • Générer le nombre entier aléatoire avec la longueur spécifique uniquement
  • Générer un nombre entier aléatoire multiple de n
  • Créer une liste d’entiers aléatoires
  • Générer un entier aléatoire sécurisé
  • Créer un tableau multidimensionnel aléatoire d’entiers aléatoires

Pour en savoir plus

  • Résolvez l’Exercice de Génération de Données Aléatoires Python et le Quiz de Génération de Données aléatoires
  • Également, lire Travailler avec des données aléatoires en Python (Guide complet)

Comment utiliser random.randint()

Syntaxe :

random.randint(start, stop)

Cette fonction renvoie un entier aléatoire dans une plage. Cette fonction prend deux paramètres. Les deux sont obligatoires. Par exemple, random.randint(0, 100) renverra tout nombre aléatoire compris entre 0 et 100.

Le randint(start, stop) inclut à la fois des nombres de début et d’arrêt lors de la génération d’entiers aléatoires. Il générera un nombre aléatoire à partir de la plage inclusive.

aléatoire.randint() exemples de génération d’entiers aléatoires

Sortie:

Random integer from 0 to 9Random integer: 5Random integer from 10 to 100Random integer: 89

Remarque: Vous ne pouvez pas utiliser de nombre flottant dans randint(). Il déclenchera un ValueError: non-integer arg 1 si vous utilisez des valeurs autres qu’un entier.
Reportez-vous à ce guide pour générer un nombre flottant aléatoire dans une plage.

Comment utiliser random.randrange()

Voyons d’abord la syntaxe

random.randrange(start, stop)

Cette fonction renvoie un entier sélectionné au hasard à partir de range(start, stop, step). Cette fonction prend trois paramètres. Sur trois paramètres, deux paramètres sont facultatifs. c’est-à-dire que start et step sont les paramètres facultatifs.

  • L’argument start est le nombre de départ dans une plage aléatoire. c’est-à-dire, limite inférieure. La valeur par défaut de start est 0 si elle n’est pas spécifiée.
  • L’argument stop est le dernier nombre d’une plage aléatoire. l’argument stop est la limite supérieure.
  • Le step est une différence entre chaque nombre de la séquence. L’étape est des paramètres facultatifs. La valeur par défaut de step est 1 si elle n’est pas spécifiée.

aléatoire.randrange() Exemples de génération d’entiers aléatoires dans une plage

Ici, dans l’exemple suivant, nous essayons d’imprimer un int aléatoire dans une plage donnée. Cet exemple illustre toutes les variantes de la fonction random.randrange().

Sortie:

Generate random number within a given range in Python Random integer: 7Random integer: 22Random integer: 180

Remarque: Vous ne pouvez pas utiliser la valeur flottante randrange(). Il déclenchera un ValueError: non-integer arg 1 for randrange() si vous avez utilisé des valeurs autres qu’un entier.

Générer le nombre entier aléatoire d’une longueur spécifique

Que faire si vous souhaitez générer un nombre aléatoire de longueur n? Par exemple, vous souhaitez générer un nombre aléatoire de longueur 4. Voyons l’exemple pour générer le nombre aléatoire de longueur 4 en utilisant random.randrange().

Sortie:

First random number of length 4 is 1931Second random number of length 4 is 5715

Remarque: Comme vous pouvez le voir, nous définissons un début sur 1000 et un arrêt sur 10000 car nous voulons générer le nombre aléatoire de longueur 4 (de 1000 à 9999).

Générer un nombre entier aléatoire multiple de n

Dans cet exemple, nous allons générer un nombre aléatoire entre x et y, qui est un multiple de 3 comme 3, 6, 39, 66.

import randomnum = random.randrange(3, 300, 3)print("Random number multiple of 3 is ", num)

Sortie:

Random number multiple of 3 is 264

Générer un entier négatif aléatoire

Voyons comment générer un entier négatif aléatoire entre -60 et -6.

import randomsingedInt = random.randrange(-60, -6)print("Random negative integer between -60 to -6")print(singedInt)

Sortie:

Random negative integer between -60 to -6-49

Générer un entier positif ou négatif aléatoire

import randomnum = random.randint(-10, 10)print(num)

Générer au hasard 1 ou -1

import randomnum = random.choice()print(num)

Note: nous avons utilisé au hasard.choice() pour choisir un seul numéro dans la liste des numéros. Voici notre liste

Générer une liste de nombres entiers aléatoires

Dans cette section, nous verrons comment générer plusieurs nombres aléatoires. Parfois, nous avons besoin d’une liste d’échantillons pour effectuer des tests ou toute opération. Dans ce cas, au lieu de le créer manuellement, nous pouvons créer une liste avec des entiers aléatoires en utilisant randint() ou randrange(). Dans cet exemple, nous verrons comment créer une liste de 10 entiers aléatoires.

Sortie:

Printing list of 10 random numbers

Dans cet exemple, il est possible d’obtenir un numéro en double dans une liste

Créer une liste de nombres aléatoires sans doublons

Dans l’exemple ci-dessus, il est possible d’obtenir un numéro aléatoire en double dans une liste. Si vous voulez vous assurer que chaque numéro de la liste est unique, il existe un moyen simple de générer une liste de nombres aléatoires uniques. Utilisation aléatoire.sample() nous pouvons créer une liste de nombres aléatoires uniques.

  • Le random.sample() renvoie une liste échantillonnée de nombres aléatoires sélectionnés dans une plage de valeurs.
  • Il ne répète jamais l’élément, de sorte que nous pouvons obtenir une liste de nombres aléatoires sans doublons

Voyons comment générer 10 entiers aléatoires de la plage 0 à 1000.

Sortie:


Si vous voulez que chaque nombre multiple de n, utilisez alors la fonction step paramètre de range(). Par exemple, vous voulez une liste de 10 nombres aléatoires, mais chaque entier dans une liste doit être multiple de 5 puis utilisez random.sample(range(0, 1000, 5), 10)

En savoir plus: aléatoire.sample()

Trier la liste des nombres aléatoires

Si vous souhaitez trier une liste d’entiers aléatoires dans l’ordre croissant, utilisez la fonction sort()

Sortie:

Before sorting random integers listAfter sorting random integers list

Générer un entier aléatoire sécurisé

Ci-dessus tous les exemples ne sont pas sécurisés cryptographiquement. Le générateur aléatoire cryptographiquement sécurisé génère des nombres aléatoires à l’aide de méthodes de synchronisation pour s’assurer qu’aucun processus ne peut obtenir le même nombre en même temps. Si vous produisez des nombres aléatoires pour une application sensible à la sécurité, vous devez utiliser cette approche.

Si vous utilisez une version de Python inférieure à 3.6 et que vous souhaitez générer un entier aléatoire sécurisé cryptographiquement, utilisez les fonctions random.SystemRandom().randint() ou random.SystemRandom().randrange(). Reportez-vous à Comment sécuriser des données aléatoires en Python.

Exemple :

Sortie:

Secure random integer is 30Secure random integer is 162

Si vous utilisez une version Python supérieure à 3.6, vous pouvez utiliser le module secrets pour générer un entier aléatoire sécurisé.

import secretsprint("Random integer generated using secrets module is ")# from 0 to 10secureNum1 = secrets.randbelow(10)print(secureNum1)

Sortie:

Random integer generated using secrets module is 8
  • Sécurisez les données aléatoires en python.
  • Module secrets Python

Créez un tableau multidimensionnel aléatoire d’entiers aléatoires

Le module NumPy de Python a un package numpy.random pour générer des données aléatoires. Pour créer un tableau multidimensionnel aléatoire d’entiers dans une plage donnée, nous pouvons utiliser les méthodes NumPy suivantes:

Maintenant, voyons l’exemple.

Générer un tableau 4 x 4 d’entrées entre 10 et 50, exclusif :

Sortie:

4 x 4 array of ints between 10 and 20 inclusive ]

Générer un tableau 5 x 3 d’entrées entre 60 et 100, inclus :

Sortie:

3 x 5 array of ints between 10 and 20 exclusive ]

Points à retenir sur randint () et randrange()

  • Utilisez randint() lorsque vous souhaitez générer un nombre aléatoire à partir d’une plage inclusive.
  • Utilisez randrange() lorsque vous souhaitez générer un nombre aléatoire dans une plage en spécifiant une valeur de pas. Il produit un nombre aléatoire à partir d’une plage exclusive.

Vous devez être conscient de certaines contraintes de valeur d’une fonction randrange().

  • Le randint()rand randrange() ne fonctionne qu’avec des entiers. Vous ne pouvez pas utiliser de nombres flottants.
  • Si vous utilisez des nombres flottants, cela augmentera ValueError: non-integer arg 1 for randrange(). Reportez-vous à cet article pour générer un nombre flottant aléatoire compris dans une plage.
  • L’étape ne doit pas être 0. S’il est défini sur 0, vous obtiendrez un ValueError: zero step for randrange()

Le début ne doit pas être supérieur à l’arrêt si vous utilisez tous les nombres positifs. Si vous définissez par erreur start supérieur à stop, vous obtiendrez une sortie ValueError: empty range for randrange()

import randomprint(random.randrange(100, 10, 2))

:

ValueError: empty range for randrange()

Mais vous pouvez également définir une valeur de démarrage supérieure à stop si vous utilisez une valeur de pas négative.

import randomprint(random.randrange(100, 10, -2))

Sortie:

60

Alors Qu’En Pensez-Vous?

Je veux avoir de vos nouvelles. Que pensez-vous de cet article sur randint() et randrange()? Ou peut-être ai-je manqué l’un des usages de ces deux fonctions. De toute façon, faites-le moi savoir en laissant un commentaire ci-dessous.

Essayez également de résoudre l’exercice et le quiz suivants pour mieux comprendre le travail avec des données aléatoires en Python.

  • Exercice de génération de données aléatoires Python pour pratiquer et maîtriser les techniques de génération de données aléatoires en Python.
  • Quiz de génération de données aléatoires Python pour tester vos concepts de génération de données aléatoires.