Maison >développement back-end >Tutoriel Python >Pourquoi la soustraction d'un entier d'une chaîne en Python peut-elle provoquer une \'TypeError\' ?
TypeError : types d'opérandes incompatibles en Python
En Python, lors d'une tentative de soustraction d'un entier d'une chaîne, une exception "TypeError" avec le message "'str' et 'int'" peut apparaître. Ce problème se produit lors du traitement de types de données mixtes dans des opérations arithmétiques.
Considérez le code suivant :
<code class="python">def cat_n_times(s, n): while s != 0: print(n) s = s - 1</code>
Lorsque ce code est exécuté, une « TypeError » est levée. En effet, la variable 's', qui est reçue sous forme de chaîne par l'utilisateur, ne peut pas être soustraite de l'entier 'n' dans la ligne 's = s - 1'.
Pour résoudre ce problème, il faut assurer la compatibilité entre les types de données impliqués dans les opérations arithmétiques. Dans ce cas précis, la variable 's' peut être convertie en entier à l'aide de la fonction 'int()' avant d'effectuer toute opération numérique.
Envisagez également de restructurer le code en utilisant une approche plus pythonique. Au lieu de suivre manuellement les indices, la boucle « for » peut être utilisée pour l'itération :
<code class="python">def cat_n_times(s, n): for i in range(n): print(s)</code>
Cette approche garantit la clarté et simplifie le code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!