# Python : tout savoir sur la fonction randint()

La fonction `randint()` offre un moyen simple et rapide de générer **des entiers aléatoires** dans une plage donnée. Elle est donc un outil optimal pour une multitude de cas d’application.

## À quoi sert la fonction `randint()` ?

`randint()` est une fonction de Python qui fait partie du module **random**. Elle a pour but de créer un nombre entier aléatoire à l’intérieur d’une plage. Contrairement à certaines fonctions dans d’autres langages de programmation, `randint()` inclut le point final spécifié de la plage, ce qui signifie que la valeur de départ et la valeur finale peuvent être toutes deux dans la plage des résultats possibles. La fonction `randint()` est surtout utile dans les applications basées sur des valeurs aléatoires.

Il existe d’autres fonctions dans le module random pour générer des nombres aléatoires de différentes manières. Par exemple, `random.randrange(start, stop[, step])` offre une fonctionnalité similaire à `randint()`, mais permet de **spécifier un pas optionnel** pour la suite de nombres. De même, `random.randint()` ne génère que des entiers, tandis que `random.uniform(a, b)` renvoie un nombre aléatoire à virgule flottante dans la plage spécifiée. De plus, le paquet numpy comprend d’autres fonctions puissantes pour la génération de nombres aléatoires, notamment pour les tableaux et les opérations mathématiques complexes.

## Structure de `randint()`

La syntaxe de la fonction `randint()` du module random de Python est relativement simple et nécessite deux paramètres : la **valeur de départ** et la **valeur de fin** de l’intervalle souhaité pour le nombre entier aléatoire.

```python
import random
random_number = random.randint(start, end)
```

- `import random` : importe le module random qui contient la fonction `randint()`. Cette étape est nécessaire pour pouvoir utiliser `randint()`.
- `random_number` : la variable dans laquelle le résultat de la fonction `randint()` est enregistré. Cette variable contient le nombre entier aléatoire généré.
- `start` : la valeur de départ de l’intervalle à partir duquel le nombre entier aléatoire doit être généré. Ce nombre est inclus dans le résultat.
- `fin` : la valeur finale de l’intervalle. Ce nombre est également inclus dans le résultat.

Voici un exemple concret :

```python
import random
random_number = random.randint(1, 100)
print(nombre_aléatoire)
```

Ce code génère un nombre entier aléatoire entre 1 et 100 et l’affiche sur la console. `start` et `end` sont inclus dans les valeurs limites données, de sorte que le nombre généré peut être compris entre 1 et 100.

## Utilisation et manipulation de la fonction `randint()`

La génération aléatoire de la fonction `randint()` peut être utilisée de manière flexible dans votre programme. Vous devez cependant veiller à ce que votre code soit propre et correct afin d’éviter certains messages d’erreur.

### Appels multiples à `randint()`

Si vous appelez la fonction `randint()` plusieurs fois, vous pouvez créer plusieurs entiers aléatoires dans différentes parties du code. Chaque appel à `randint()` génère un nouvel entier aléatoire selon les paramètres spécifiés.

```python
import random
# Générer trois entiers aléatoires différents entre 1 et 10
nombre_aleatoire1 = random.randint(1, 10)
nombre_aleatoire2 = random.randint(1, 10)
nombre_aleatoire3 = random.randint(1, 10)
# Afficher les entiers aléatoires générés
print("Entier aléatoire 1:", nombre_aleatoire1)
print("Entier aléatoire 2:", nombre_aleatoire2)
print("Entier aléatoire 3:", nombre_aleatoire3)
```

Dans le code ci-dessus, nous utilisons trois appels `randint()` séparés pour générer trois entiers aléatoires différents compris entre 1 et 10. Chaque variable `random_numberX` stocke le résultat d’un appel `randint()` distinct, et ces valeurs peuvent être réutilisées ou affichées, selon les besoins de l’application.

### ValueError pour `randint()`

Une ValueError se produit avec `randint()` si les arguments ne correspondent pas aux attentes, par exemple si la valeur de départ est supérieure à la valeur finale ou si des arguments non entiers sont passés. Il est donc conseillé de s’assurer que les paramètres sont corrects pour éviter les exceptions ValueError et pour que la fonction s’exécute sans problème.

```python
# Utilisation correcte de randint()
nombre_aleatoire = random.randint(1, 10)
print("Entier aléatoire entre 1 et 10:", nombre_aleatoire)
# ValueError potentiel si ‘end’ est inférieur à ‘start’
nombre_aleatoire_erreur = random.randint(10, 5)  # Cela déclenchera une ValueError
print("Ceci ne sera pas imprimé car une erreur se produit.")
```

Ici, nous utilisons d’abord `random.randint(1, 10)` pour créer un entier aléatoire entre 1 et 10. Ensuite, on essaie d’appeler `random.randint(10, 5)`, ce qui va provoquer une ValueError, car la valeur de départ est plus grande que la valeur finale.

### TypeError pour `randint()`

Une TypeError signifie qu’une opération ou une fonction est appliquée à un type de données qui ne s’y prête pas. Dans le contexte de la fonction `randint()` du module random, une TypeError peut être signalée si les arguments passés n’ont pas le type de données attendu.

```python
import random
random_number_error = random.randint("1", "10")
```

Dans cet exemple, nous voulons appeler `randint()` avec des strings Python comme arguments. Celles-ci contiennent `"1"` et `"10"` au lieu d’entiers. Cela provoque une TypeError, car `randint()` attend des entiers comme arguments pour définir la plage d’intervalles aléatoires.


This is a markdown version of: [https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-randint/](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-randint/) for AI/LLM consumption.