unsupported operand type(s) for +: 'int' and 'str'
Explication
Causes courantes
- **`input()` renvoie une `str`** : `"25" + 1` échoue. - **Concaténer un nombre à du texte** : `"Total : " + 42`. - **Données lues d'un fichier, d'un CSV ou d'un JSON** récupérées comme texte alors que vous les croyez numériques. - **Une colonne de DataFrame** au mauvais `dtype` (`object` au lieu de `int`).
1. Convertissez explicitement le type
Pour une addition, convertissez la chaîne en nombre avec int() ou float() :
age = input("Votre âge : ")
print(int(age) + 1) # ✅ 26
Pour insérer un nombre dans du texte, convertissez-le en chaîne — ou, mieux, utilisez une f-string :
total = 42
print("Total : " + str(total)) # ✅ concaténation explicite
print(f"Total : {total}") # ✅ f-string (recommandé)
2. Validez la saisie utilisateur
saisie = input("Votre âge : ")
try:
age = int(saisie)
except ValueError:
print("Veuillez entrer un nombre entier valide.")
3. En production : convertissez à la frontière
Convertissez les données dès leur entrée (lecture de requête, de fichier, d'environnement) pour que le reste du code manipule de vrais nombres :
import os
timeout = int(os.environ.get("TIMEOUT", "30")) # str -> int une seule fois
Comment prevenir cette erreur
Besoin d'aide sur votre projet ?
Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.
Nous contacter