HOWTO · Python

Vérifier si l'entrée est un entier en Python

Ce tutoriel montre comment vérifier si une chaîne saisie par l'utilisateur est de type entier ou non en Python

Sur cette page

Dans le monde de la programmation, nous travaillons très fréquemment avec l’apport de l’utilisateur. Python a la fonction input() disponible, qui permet à l’utilisateur de saisir l’entrée souhaitée. Parfois, nous pouvons vouloir l’entrée d’un type spécifique.

Cependant, cette fonction convertit l’entrée de l’utilisateur en chaîne avant de la compiler avec le programme. Par conséquent, il n’est pas simple d’utiliser les méthodes traditionnelles pour vérifier des types spécifiques avec l’entrée de l’utilisateur, et nous devons vérifier si la chaîne contient des nombres ou non essentiellement.

Dans ce tutoriel, nous verrons comment vérifier si l’entrée saisie par l’utilisateur est de type entier ou non.

Utilisez la fonction int() pour vérifier si l’entrée est un entier en Python

La fonction int() peut convertir une valeur entière de chaîne donnée en un type entier. Cela génère une erreur si la valeur souhaitée n’est pas un entier et ne peut pas être convertie. Nous pouvons utiliser cette méthode pour vérifier si la chaîne de l’utilisateur est un entier ou non, comme indiqué ci-dessous.

user_input = input("Enter the input ")

try:
    int(user_input)
    it_is = True
except ValueError:
    it_is = False

print(it_is)

Production:

Enter the input 15
True

Notez l’utilisation du bloc try...except dans cette méthode. Il est utilisé très fréquemment lors de la gestion des exceptions en Python.

Utilisez la méthode isnumeric() pour vérifier si l’entrée est un entier ou non

La méthode isnumeric() de la chaîne renvoie True si la chaîne ne contient que des nombres. Cependant, il convient de noter qu’il échoue avec des valeurs négatives. En effet, il renvoie automatiquement False lorsqu’il rencontre le signe - en nombres entiers négatifs.

Le code suivant montre comment nous pouvons utiliser cette fonction pour vérifier si une chaîne contient des entiers en Python.

user_input = input("Enter the input ")

print(user_input.isnumeric())

Production:

Enter the input 10
True

On peut aussi utiliser la fonction isdigit() à la place de isnumeric(); elle présente également les mêmes limites que cette méthode.

Utilisez les expressions régulières pour vérifier si l’entrée est un entier en Python

Nous pouvons également utiliser les expressions régulières pour créer un modèle qui renvoie True chaque fois qu’il rencontre des entiers dans une chaîne. Nous pouvons également modifier le modèle pour nous assurer qu’il fonctionne pour les valeurs négatives. Par exemple,

import re

user_input = input("Enter the input ")

num_format = re.compile(r"^\-?[1-9][0-9]*$")
it_is = re.match(num_format, user_input)

if it_is:
    print("True")
else:
    print("False")

Production:

Enter the input -15
True

Vous trouverez ci-dessous l’explication du modèle d’expression régulière - ^\-?[1-9][0-9]*$.

  • ^ est le début de la chaîne
  • \-? indique que ce nombre peut être négatif ou positif.
  • [1-9] est le premier chiffre du numéro. Il doit s’agir d’un nombre compris entre 1 et 9, mais pas 0.
  • [0-9]* indique les chiffres suivants. Le nombre de chiffres peut être quelconque, y compris 0.
  • $ est la fin de la chaîne.