Python Vérifier si une chaîne est un nombre
L'exemple suivant crée une fonction personnaliséeis_number()pour déterminer si une chaîne est un nombre :
Exemple (Python 3.0+)
# -*- coding: UTF-8 -*-
# Nom de fichier : test.py
# auteur : www.example.com
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
# Tester des chaînes et des nombres
print(is_number('foo')) # False
print(is_number('1')) # True
print(is_number('1.3')) # True
print(is_number('-1.37')) # True
print(is_number('1e3')) # True
# Tester Unicode
# Arabe 5
print(is_number('٥')) # True
# Thaï 2
print(is_number('๒')) # True
# Chiffres chinois
print(is_number('four')) # True
# Symbole de copyright
print(is_number('©')) # False
Nous pouvons également utiliser des instructions if imbriquées pour y parvenir :
L'exécution du code ci-dessus produit la sortie :
False True True True True True True True False
Autres méthodes
Python isdigit() La méthode vérifie si la chaîne est composée uniquement de chiffres.
Python isnumeric() La méthode vérifie si la chaîne est composée uniquement de chiffres. Cette méthode ne s'applique qu'aux objets unicode.
Autres extensions
Exemples Python3