11
votes

Pourquoi python dit que POW n'a que 2 arguments

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 pow (a, b, c) . Mon programme est très court et je ne modifie pas la définition de pow à tout moment, car je dois l'utiliser pour une exponentiation.

Remarque: il s'agit du pow à partir de __ intégré __ , pas math


0 commentaires

3 Réponses :


0
votes

http://docs.python.org/release/2.6 .5 / Bibliothèque / Fonctions.html

pow (x, y [ z]) 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.

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 -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. (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.)

Peut-être que vous violez la partie audacieuse?


1 commentaires

non. Je suis sûr que toutes les valeurs sont des entiers positifs Edit: Oui. A, B, C = 9, 4, 225



18
votes

intégré pow prend deux ou trois arguments. Si vous faites de Math Import * , il est remplacé par Math's POW , qui ne prend que deux arguments. Ma recommandation est de faire importer des maths ou de liste explicitement des fonctions que vous utilisez dans la liste des importations. Un problème similaire arrive avec Ouvrir vs. code> os.open .


2 commentaires

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 *


@CALCCRYPTO: Si vous importez un autre programme avec de p import * alors oui. Utilisez importer p ou liste explicitement de p import [...] .



1
votes

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é __ et d'appeler __ intégré __ .POW pour le 3 paramètres


1 commentaires

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.