Pourquoi Python me dit-il "TypeError: POW attendit-il 2 arguments, a eu 3" malgré cela travaillant dans oisif (parfois, cela me dit qu'en ralenti)? Je fais simplement Remarque: il s'agit du pow (a, b, c) code>. Mon programme est très court et je ne modifie pas la définition de
pow code> à tout moment, car je dois l'utiliser pour une exponentiation. P>
pow code> à partir de
__ intégré __ code>, pas
math code> p> p>
3 Réponses :
http://docs.python.org/release/2.6 .5 / Bibliothèque / Fonctions.html P>
pow (x, y [ z]) code> retour x à la puissance y; Si Z est présent, retournez X au Power Y, modulo z (calculé plus efficacement que POW (x, y)% z). Les formulaire de deux arguments pow (x, y) est équivalent à l'utilisation du pouvoir opérateur: x ** y. p>
Les arguments doivent avoir des types numériques. Avec des types d'opérande mixte, la coercition Règles pour les opérateurs arithmétiques binaires appliquer. Pour les opérandes int et longs int, Le résultat a le même type que le opérandes (après la contrainte) à moins que le Deuxième argument est négatif; dans ce cas, tous les arguments sont convertis en Le flotteur et un résultat du flotteur sont livrés. Par exemple, 10
2 rendements 100, mais 10 strong> -2 retourne 0.01. (Ce dernier La fonctionnalité a été ajoutée à Python 2.2. Dans Python 2.1 et avant, si les deux les arguments étaient des types entier et Le deuxième argument était négatif, un une exception a été soulevée.) si la seconde l'argument est négatif, le troisième L'argument doit être omis. Si z est présents, x et y doivent être entier types et y doivent être non négatifs. strong> (Cette restriction a été ajoutée à Python 2.2. En Python 2.1 et avant, flottant 3-argument POW () retourné Résultats dépendants de la plateforme en fonction sur des accidents d'arrondi à virgule flottante.) p> blockQuote> Peut-être que vous violez la partie audacieuse? P>
non. Je suis sûr que toutes les valeurs sont des entiers positifs Edit: Oui. A, B, C = 9, 4, 225
intégré pow code> prend deux ou trois arguments. Si vous faites
de Math Import * code>, il est remplacé par Math's
POW CODE>, qui ne prend que deux arguments. Ma recommandation est de faire
importer des maths code> ou de liste explicitement des fonctions que vous utilisez dans la liste des importations. Un problème similaire arrive avec
Ouvrir code> vs. code> os.open code>. P>
Ah ... peut-être que c'est pourquoi. Merci!!!!! Euh ... une importation d'un autre fichier l'affecte-t-elle? Im importe un autre programme que j'ai écrit, qui a également de Math Import * code>
@CALCCRYPTO: Si vous importez un autre programme avec de p import * code> alors oui. Utilisez
importer p code> ou liste explicitement
de p import [...] code>.
Si vous utilisez des fonctions mathématiques beaucoup et que la version des trois paramètres de POW à peu près à cela dans Python 2.7 est d'importer __ intégré __ code> et d'appeler
__ intégré __ code> .POW pour le 3 paramètres p>
Il devrait y avoir deux caractères de soulignement de chaque côté de la «builitine» dans les deux cas, mais le formatage interprété comme une police audacieuse - ne savez pas quoi faire à propos de Thaat.