littéral Python invalide pour int avec base 10

Python est bon pour convertir des valeurs en différents types de données. Vous pouvez convertir des chaaînes en entiers, des entiers en chaaînes, des flottants en entiers, pour ne citer que quelques exemples. Il y a une conversion que Python n’aime pas : changer un flottant structuré comme une chaaîne en un entier.

Dans ce tutoriel, nous discutons de la ValueError : invalid literal for int() avec une erreur en base 10 et pourquoi elle est déclenchée. Nous passons en revue un exemple de cette erreur pour vous aider à comprendre comment vous pouvez la corriger dans votre code.

Le problème : ValueError : littéral invalide pour int() avec la base 10

Let&rsquo ;s commencez par lire notre message d’erreur :

Les messages d’erreur ont deux parties. La première partie nous indique le type d’erreur auquel nous sommes confrontés. Une ValueError est déclenchée lorsqu’il y a un problème avec la valeur stockée dans un objet particulier.

Notre message d’erreur nous indique qu’il y a un littéral invalide pour un entier en base 10. Cela signifie la valeur que nous sont passés par une méthode int() ne peuvent pas être convertis.

En Python, vous pouvez passer des nombres formatés sous forme de chaaînes dans le float() et int().

Le La méthode int() ne permet pas de passer un flottant représenté par une string. Si vous essayez de convertir une valeur de chaaîne non formatée en tant qu’entier, cette erreur est générée.

Cela signifie que vous ne pouvez pas convertir un nombre à virgule flottante dans une chaaîne en un entier. De plus, vous ne pouvez pas convertir des lettres en nombre entier (à moins que vous n’utilisiez des lettres ayant une signification particulière, comme "inf‚").

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi technique après assister à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Ici, nous construisons un programme qui calcule si un café a suffisamment de café en stock pour servir ses clients pendant une journée. Notre champ de saisie doit accepter les nombres décimaux car les sacs peuvent être à moitié pleins, au quart pleins, etc.

Nous convertissons la valeur qu’un utilisateur insère en un entier car nous n’avons pas besoin d’être précis jusqu’au niveau des demi-sacs et quarts-sacs.

Commençons par demander à l’utilisateur d’insérer le nombre de sacs de café restants à l’aide d’une instruction input() :

Ensuite, nous convertissons cette valeur en un entier. Nous utilisons ensuite une déclaration "if‚" pour vérifier si le café a assez de café. Si le café a plus de 10 sacs, ils ont assez pour la journée. Sinon, ils n’en ont pas.

Écrivons ceci dans notre programme :

Exécutons notre code et voyons ce qui se passe :

Lorsque nous essayons d’écrire un nombre décimal dans notre programme, une erreur est renvoyée.< /p>

Cette erreur est due au fait que nous essayons de convertir "7.4: en un entier. La valeur "7.4" est formaté sous forme de chaaîne. Python ne peut pas convertir un nombre à virgule flottante dans une chaaîne en un entier.

Pour surmonter ce problème, nous devons convertir la valeur qu’un utilisateur insère en un nombre à virgule flottante. Ensuite, nous pouvons le convertir en un entier.

Nous pouvons le faire en utilisant les instructions float() et int(). La fonction int() renvoie un entier. La fonction float() renvoie une représentation à virgule flottante d’un flottant.

Notre code convertit d’abord la valeur de "coffee_bags‚" à un flotteur. Ensuite, il convertit cette valeur en un entier. Essayons à nouveau d’exécuter notre code :

Notre code fonctionne avec succès. Maintenant que nous avons converti les "sacs_café‚" à un flottant, notre programme peut convertir la valeur qu’un utilisateur insère en un entier.

Conclusion

L’erreur Python ValueError : un littéral invalide pour int() avec une erreur en base 10 est généré lorsque vous essayez de convertir une valeur de chaaîne qui n’est pas formatée comme un entier.

Pour résoudre ce problème, vous pouvez utiliser la méthode float() pour convertir un nombre à virgule flottante dans une chaaîne en un entier. Ensuite, vous pouvez utiliser int() pour convertir votre nombre en entier.

Si cela ne fonctionne pas, assurez-vous que la valeur d’une chaaîne ne contient aucune lettre. Les chaaînes contenant des lettres ne peuvent pas être converties en nombre entier, sauf si ces lettres ont une signification particulière en Python.

Vous êtes maintenant prêt à résoudre cette erreur Python courante comme un développeur expert !