У меня есть 3 переменной, и я хочу найти (x**y)%z
. Я импортировал математическую библиотеку и позвонил math.pow(x,y,z)
, но это выдает ошибку
Результат ошибки
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
math.pow(x,y,z)
TypeError: pow expected 2 arguments, got 3
Я использую Python 3.9.1
3 ответа
У меня есть 3 переменной, и я хочу найти (x ** y)% z. Я импортировал математическую библиотеку и вызвал math.pow (x, y, z), но это выдает ошибку
Вы можете сделать это с помощью встроенной (не нужно ничего импортировать) функции pow < / a> например:
print(pow(2, 10, 10))
Выход:
4
Использование 3-арочного pow
может быть более эффективным, чем использование **
, а затем %
.
Это выражение было бы
math.pow(x, y) % z
Поскольку ошибка правильно сообщает вам, math.pow
принимает только два аргумента, которые должны реализовать x ** y
. Затем вы можете использовать результат для получения модуля.
Pow может использоваться только для выполнения x в степени y (math.pow (x, y)), поэтому передача 3 параметров на самом деле не имеет смысла для pyhton.
Вместо этого вам следует просто:
answer = (x ** y) % z
Поскольку python поддерживает ** в степени и% в качестве модуля.
Если вы по какой-то странной причине действительно хотите использовать math.pow, вы должны исключить из него аргумент z следующим образом:
answer = math.pow(x, y) % z
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.