Maison >développement back-end >Tutoriel Python >Comment résoudre les erreurs de type lors de la soustraction de différents types de données en Python ?
TypeError : types d'opérandes non pris en charge pour la soustraction
En Python, les opérateurs de soustraction ne peuvent être utilisés qu'entre des types compatibles, tels que des nombres ou des chaînes. Cependant, une erreur se produit lors de la tentative de soustraction d'une chaîne d'un entier.
Code original :
<code class="python">def cat_n_times(s, n): while s != 0: print(n) s = s - 1 text = input("What would you like the computer to repeat back to you: ") num = input("How many times: ") cat_n_times(num, text)</code>
Erreur :
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Explication :
Les entrées dans le programme, text et num, sont toutes deux des chaînes telles qu'elles ont été reçues à l'aide de l'entrée. Cependant, la fonction cat_n_times tente de soustraire un ou plusieurs entiers à la chaîne (texte), ce qui entraîne l'erreur de type.
Solutions :
1 . Convertir l'entrée en entier :
Une solution consiste à convertir la chaîne num en un entier à l'aide de int() :
<code class="python">num = int(input("How many times: "))</code>
2. Conception de fonction améliorée :
Alternativement, une meilleure conception de fonction utiliserait une boucle for au lieu d'un suivi d'index manuel :
<code class="python">def cat_n_times(s, n): for i in range(n): print(s) text = input("What would you like the computer to repeat back to you: ") num = int(input("How many times: ")) cat_n_times(text, num)</code>
Cette version transmet plus clairement l'intention de la fonction et élimine l'erreur en convertissant num en entier avant de l'utiliser dans la boucle.
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!