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 ?

Comment résoudre les erreurs de type lors de la soustraction de différents types de données en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-19 13:37:29986parcourir

How to Resolve Type Errors When Subtracting Different Data Types in 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!

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