"Résolution de l'erreur de type : types d'opérandes non pris en charge pour - : 'str' et 'int'"
Lors de la tentative de code en Python, il n'est pas rare de rencontrer des erreurs telles que l'erreur « TypeError : type(s) d'opérande non pris en charge pour - : 'str' et 'int' ». Cette erreur se produit généralement lorsque vous tentez d'effectuer des opérations mathématiques sur différents types de données, telles que la soustraction d'un entier d'une chaîne.
Pour comprendre cette erreur, examinons le code qui y a conduit :
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)
Le problème ici réside dans la fonction d'entrée, qui renvoie une chaîne pour le texte et le num. Pendant que le code tente de soustraire un entier (s - 1) d'une chaîne (num), cela entraîne l'erreur.
Solution 1 : Convertir l'entrée
Une La solution consiste à convertir l'entrée d'une chaîne en un entier avant d'effectuer des opérations mathématiques. Cela peut être fait en utilisant la fonction int() :
num = int(input("How many times: "))
En convertissant num en un entier, nous pouvons garantir compatibilité pour les opérations mathématiques avec s.
Solution 2 : utiliser une itération alternative
Au lieu de suivre manuellement les indices, envisagez d'utiliser une approche plus pythonique pour l'itération :
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)
Ici, la boucle for avec range(n) gère l'itération efficacement.
Considérations sur l'API
L'erreur également met en évidence les problèmes potentiels liés à la conception de l'API. Il peut être plus intuitif que le texte soit la chaîne et que le nombre représente le nombre de fois. Dans ce cas, l'API peut être modifiée en conséquence.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3