Course
Comment convertir une chaîne de caractères en un nombre entier en Python ?
L'un des obstacles les plus courants en Python, en particulier pour les débutants, est l'erreur de type de données. Une erreur de type de données très courante se produit surtout lorsque les nombres sont formatés comme des chaînes de caractères, ce qui entraîne des erreurs de calcul, des interprétations erronées ou des messages d'erreur purs et simples. Dans ce tutoriel, je vous montrerai comment éviter ces erreurs et comment convertir les chaînes Python en entiers.
La réponse rapide : Voici comment convertir une chaîne Python en un nombre entier
Si vous êtes pressé, voici la solution la plus rapide pour convertir une chaîne de caractères en un type numérique en Python. Si votre chaîne représente un nombre entier (c'est-à-dire 12
), utilisez la fonction int()
pour convertir une chaîne en un nombre entier. Si votre chaîne représente un nombre décimal (c'est-à-dire 12.5
), utilisez la fonction float()
pour convertir une chaîne en un nombre flottant. Vous trouverez des exemples ci-dessous :
# Converting a string into an integer
number_str = "10"
number_int = int(number_str)
print(number_int) # Output: 10
# Converting a string into a float
decimal_str = "10.5"
decimal_float = float(decimal_str)
print(decimal_float) # Output: 10.5
Les types de données en Python
Python est un langage à typage dynamique, qui propose une grande variété de types de données, des chaînes de caractères aux nombres entiers, en passant par les nombres à virgule flottante et les booléens. Il est essentiel de les comprendre pour mettre en place une programmation efficace. Vous trouverez ci-dessous une liste non exhaustive des types de données Python :
- Chaîne (
str
) : Données textuelles entre guillemets. Par exemple,greeting = "Hello, World!"
- Entier (
int
) : Nombres entiers sans composante fractionnaire. Par exemple,age = 25
- Flottant (
float
) : Les nombres avec un point décimal. Par exemple,height = 5.9
- Booléen (
bool
) : ReprésenteTrue
ouFalse
- Liste (
list
) : Une collection ordonnée d'éléments qui peuvent être de types de données mixtes. Les listes sont mutables, c'est-à-dire qu'elles peuvent être modifiées. Par exemple,colors = ["red", "blue", "green"]
- Dictionnaire (
dict
) : Une collection de paires clé-valeur, vous permettant de stocker et d'extraire des données à l'aide de clés. Par exemple,person = {"name": "Alice", "age": 30}
Pour en savoir plus sur les types de données, lisez ce tutoriel sur les structures de données en Python sur DataCamp.
Pourquoi convertir une chaîne de caractères en un nombre entier ?
Des types de données corrects sont essentiels pour effectuer des calculs précis. Prenons l'exemple suivant. Supposons que nous ayons deux nombres 5
et 10
qui sont des chaînes de caractères. Si nous les additionnons, la réponse sera 510
, puisqu'ils sont traités comme des chaînes de caractères qui sont concaténées avec l'opérateur +
. Pour obtenir la réponse exacte (dans ce cas 15
), il faudrait les convertir en nombres entiers avant de calculer la somme. Il s'agit d'une illustration simple, mais imaginez qu'elle soit appliquée à un ensemble de données sur les revenus d'une entreprise, des informations erronées peuvent conduire à de mauvaises décisions commerciales.
# Summing two numbers that are actually strings
'5'+'10'# This returns 510
# Converting them to integers before summing them
int('5') + int('10') # This returns 15
Comment convertir des chaînes de caractères en nombres entiers en Python ?
Lorsque vous travaillez avec des données numériques formatées sous forme de chaînes de caractères, il est souvent nécessaire de convertir ces chaînes en nombres entiers pour effectuer des calculs ou d'autres opérations numériques. Python propose un moyen simple d'y parvenir en utilisant la fonction int()
. Cette fonction prend en entrée une chaîne de caractères et renvoie sa représentation en nombres entiers, à condition que la chaîne représente un nombre entier valide.
# Convert a string to an integer
numeric_string = "42"
converted_integer = int(numeric_string)
print(converted_integer) # Output: 42
Comment convertir des chaînes de caractères en nombres flottants en Python ?
Dans les cas où la chaîne représente un nombre avec un point décimal, la conversion en un nombre entier serait inappropriée et entraînerait une erreur. Au lieu de cela, vous pouvez convertir ces chaînes en nombres flottants à l'aide de la fonction float()
de Python. L'utilisation de types de données flottantes est cruciale, en particulier lorsque vous travaillez avec des données très précises, telles que des données financières ou des données de mesure de capteurs.
# Convert a string to a float
decimal_string = "3.14"
converted_float = float(decimal_string)
print(converted_float) # Output: 3.14
Questions courantes
Lors de la conversion de chaînes de caractères en nombres, quelques pièges peuvent entraîner des erreurs ou des résultats inattendus.
Conversion de chaînes de caractères non numériques
Si vous tentez de convertir une chaîne non numérique, comme 'hello world'
, en un nombre, vous obtiendrez une erreur. Si vous voulez attraper par programme des chaînes qui ne peuvent pas être converties en entiers, essayez d'utiliser un bloc try/except
pour traiter ces cas de manière élégante.
try:
invalid_number = int("hello world")
except ValueError:
print("This is not a number.")
Conversion de chaînes de caractères flottants en nombres entiers
La conversion d'une chaîne de caractères représentant un nombre flottant directement en un nombre entier se traduit par un ValueError
. Si vous pouvez convertir une chaîne de caractères représentant un nombre entier en un nombre flottant, vous ne pouvez pas faire l'inverse. Voici un exemple d'erreur que vous pouvez obtenir :
string_decimal = '13.5'
# Convert string_decimal into an integer
int(string_decimal)
# Returns ValueError: invalid literal for int() with base 10: '13.5'
Chaînes avec des bases différentes
Lorsque l'on parle de "base" dans les nombres, on se réfère au système de numération dans lequel le nombre est exprimé. La base la plus courante est la base 10, également connue sous le nom de système décimal, que nous utilisons dans la vie de tous les jours. Il se compose de 10 chiffres, de 0 à 9.
Cependant, d'autres bases existent et sont utilisées dans différents domaines, notamment en informatique. Par exemple :
- Binaire (base 2): N'utilise que 0 et 1. C'est le langage fondamental des ordinateurs.
- Octal (base 8): Utilise les chiffres de 0 à 7. Il est moins courant aujourd'hui, mais il était utilisé dans les anciens systèmes informatiques.
- Hexadécimal (base 16): Utilise les chiffres de 0 à 9 et les lettres de A à F (où A=10 et F=15). Il est largement utilisé en informatique, notamment pour les codes de couleur dans la conception des sites web et les adresses mémoire.
Lorsque vous avez une chaîne de caractères représentant un nombre dans une base autre que 10, vous devez spécifier la base pour que Python puisse l'interpréter correctement. Voici un exemple utilisant un nombre hexadécimal :
# Convert a hexadecimal string to an integer
hex_string = "1A" # In base 16, 1A represents the decimal number 26
converted_int = int(hex_string, 16) # The '16' tells Python it's in base 16
print(converted_int) # Output: 26
Réflexions finales
Naviguer dans les types de données et les conversions en Python est une compétence fondamentale pour la programmation. En sachant comment convertir avec précision les chaînes de caractères en nombres entiers et en nombres flottants, vous éviterez les pièges les plus courants et vous vous assurerez que vos manipulations de données sont correctes. Si vous souhaitez en savoir plus sur Python, consultez notre Aide-mémoire Python pour les débutants, notre guide sur l'apprentissage de Python et nos cours sur Python.
Adel est un éducateur, conférencier et évangéliste en science des données à DataCamp où il a publié plusieurs cours et formations en direct sur l'analyse des données, l'apprentissage automatique et l'ingénierie des données. Il est passionné par la diffusion des compétences en matière de données dans les organisations et par l'intersection de la technologie et de la société. Il est titulaire d'une maîtrise en science des données et en analyse commerciale. Pendant son temps libre, vous pouvez le trouver en train de traîner avec son chat Louis.
Poursuivez votre apprentissage de Python dès aujourd'hui !
Course
Python intermédiaire
Track