Maison >développement back-end >Tutoriel Python >Comment résoudre l'erreur \'TypeError : types d'opérandes non pris en charge pour - : \'str\' et \'int\'\' en Python ?

Comment résoudre l'erreur \'TypeError : types d'opérandes non pris en charge pour - : \'str\' et \'int\'\' en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-19 13:35:02658parcourir

How to Resolve

TypeError : types d'opérandes non pris en charge pour la soustraction

Lorsque vous rencontrez l'erreur "TypeError : types d'opérandes non pris en charge pour - : 'str' et 'int'", cela signifie qu'une tentative a été faite pour soustraire deux opérandes incompatibles, généralement une chaîne et un entier.

Dans ce cas, le code Python fourni démontre cette erreur :

<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>

L'erreur provient de la tentative de soustraire la variable s (attribuée au résultat de l'entrée) de 1. Cependant, l'entrée renvoie une chaîne et Python ne peut pas effectuer de soustraction sur les chaînes et les entiers.

Pour résoudre ce problème , convertissez num en un entier en utilisant int(num) immédiatement après avoir reçu l'entrée :

<code class="python">num = int(input("How many times: "))</code>

De plus, le code pourrait être simplifié à l'aide d'une boucle for :

<code class="python">def cat_n_times(s, n):
    for _ in range(n):
        print(s)</code>

Ce code révisé acceptera une chaîne pour le texte et un entier pour num, garantissant que l'opération de soustraction est effectuée correctement.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn