Comment résoudre les erreurs \'TypeError : type(s) d'opérande non pris en charge pour - : \'str\' et \'int\'\' ?

Mary-Kate Olsen
Libérer: 2024-10-19 13:37:01
original
795 Les gens l'ont consulté

How to Resolve

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

<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

Le problème ici réside dans la fonction d'entrée, qui renvoie une chaîne pour le texte et le nombre. Pendant que le code tente de soustraire un entier (s - 1) d'une chaîne (num), ce qui entraîne l'erreur.

Solution 1 : Convertir l'entrée

Un 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() :

<code class="python">num = int(input("How many times: "))</code>
Copier après la connexion

En convertissant num en un entier, nous pouvons assurer la compatibilité des opérations mathématiques avec s.

Solution 2 : Utiliser Itération alternative

Au lieu de suivre manuellement les indices, envisagez d'utiliser une approche plus pythonique pour l'itération :

<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

Ici, la boucle for avec range(n) gère l'itération efficacement.

Considérations sur l'API

L'erreur met également en évidence des 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.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!