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
Libérer: 2024-10-19 13:37:29
original
1060 Les gens l'ont consulté

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>
Copier après la connexion

Erreur :

TypeError: unsupported operand type(s) for -: 'str' and 'int'
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal