Ce code ne fonctionne pas pour moi et je continue à obtenir une erreur de type opératoire non supportée. Le code d'erreur lit TypeError: type (s) d'opérande non pris en charge pour Sub: 'str' et 'str' sur la ligne 10
x1 = input(print("What is the x coordinate of the first circle: ")) y1 = input(print("What is the y coordinate of the first circle: ")) r1 = input(print("What is the radius of the first circle: " )) x2 = input(print("What is the x coordinate of the second circle: ")) y2 = input(print("What is the y coordinate of the second circle: ")) r2 = input(print("What is the radius of the second circle: ")) import math def distance(x1, y1, x2, y2): return math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) * 1.0) print("%.6f"%distance(x1, y1, x2, y2)) if distance <= abs(r1 - r2): print("Circle 2 is inside of circle 1") elif distance <= r1 + r2: print("Circle 2 overlaps circle 1") else: print("Circle 2 does not overlap circle 1")
3 Réponses :
L'entrée reçoit une chaîne. Vous devez le convertir en un format de numéro. S'il vous plaît vérifier Comment puis-je analyser une chaîne à un float ou int?
De plus, lorsque vous comparez, vous devez appeler la fonction avec les paramètres.
Je n'ai pas vérifié les mathématiques, mais je suppose que c'est ce que vous recherchez: p>
Merci! J'ai souffert de ce problème pendant un moment maintenant. Cela aide vraiment!
Vous devez le mettre avec Si vous imprimez le type de variable que La façon dont vous avez votre code en ce moment, vous dites au programme de faire des mathématiques sur une chaîne. C'est pourquoi vous obtenez cette erreur. P> int () code> ou
float () code>, comme indiqué ci-dessous p>
x1 = int (entrée (impression ("Quelle est la coordonnée x du premier cercle:"))) code> p>
x1 code> est en faisant
imprimer (type (x1)) code> Vous obtiendrez ce qui suit: p>
y1 = int(input("What is the y coordinate of the first circle : ")) r1 = int(input("What is the radius of the first circle : ")) x2 = int(input("What is the x coordinate of the second circle: ")) y2 = int(input("What is the y coordinate of the second circle: ")) r2 = int(input("What is the radius of the second circle : ")) x=y1*r1*x2*y2*r2 print(x)
gâcher avec ça
Dupliqué possible de TypeError: type (s) d'opérande non pris en charge pour /: 'str 'et' str ', et TypeError : Type (s) d'opérande non pris en charge pour -: 'str' et 'str' in python et Comment puis-je lire les entrées sous forme de chiffres? .
La recherche avec le message d'erreur vous indique souvent dans la bonne direction.
Lorsque vous demandez à propos du code qui produit une exception, incluez toujours la traçabilité complète dans la question. Copiez la trace de la trace et la colle dans la question, puis le format comme code (sélectionnez-le et tapez ctrl-k)