Почему Python говорит, что у Pow только 2 аргумента - PullRequest
9 голосов
/ 24 июля 2010

Почему python говорит мне «TypeError: pow ожидал 2 аргумента, получил 3», несмотря на то, что он работает в IDLE (иногда он говорит мне и об IDLE)?я просто делаю pow(a,b,c).моя программа очень короткая, и я не изменяю определение pow в любое время, так как мне нужно использовать его для некоторого возведения в степень.

ПРИМЕЧАНИЕ.1007 *

Ответы [ 3 ]

15 голосов
/ 24 июля 2010

Встроенный pow принимает два или три аргумента.Если вы делаете from math import *, то оно заменяется математическим pow, которое принимает только два аргумента.Я рекомендую сделать import math или явно перечислить функции, которые вы используете в списке импорта.Аналогичная проблема возникает с open против os.open.

1 голос
/ 13 февраля 2013

Если вы часто используете математические функции и версия с тремя параметрами pow нечасто обходится в python 2.7, это импортировать __builtin__ и вызывать __builtin__ .pow для трех параметров

0 голосов
/ 24 июля 2010

http://docs.python.org/release/2.6.5/library/functions.html

pow(x, y[, z]) Возврат х к власти у; если присутствует z, верните x в степень y, по модулю z (вычисляется больше эффективнее, чем pow (x, y)% z). форма двух аргументов pow (x, y) эквивалентно использованию силы оператор: x ** y.

Аргументы должны иметь числовые типы. Со смешанными типами операндов, принуждение правила для двоичных арифметических операторов применять. Для операндов int и long int, результат имеет тот же тип, что и операнды (после приведения), если только второй аргумент отрицательный; в этом В этом случае все аргументы преобразуются в float и результат float доставлен. Например, 10 2 возвращает 100, но 10 -2 возвращает 0,01. (Этот последний функция была добавлена ​​в Python 2.2. В Python 2.1 и раньше, если оба аргументы были целочисленных типов и второй аргумент был отрицательным, Возникло исключение.) Если второе аргумент отрицательный, третий Аргумент должен быть опущен. Если г настоящее x и y должны быть целыми числами типы, и у должен быть неотрицательным. (Это ограничение было добавлено в Python 2.2. В Python 2.1 и более ранних версиях Pow () с 3 аргументами возвратился зависимые от платформы результаты в зависимости при несчастных случаях с плавающей точкой.)

Возможно, вы нарушаете жирную часть?

...