У меня есть 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

1
Sunilsai1066 15 Фев 2021 в 15:23

3 ответа

Лучший ответ

У меня есть 3 переменной, и я хочу найти (x ** y)% z. Я импортировал математическую библиотеку и вызвал math.pow (x, y, z), но это выдает ошибку

Вы можете сделать это с помощью встроенной (не нужно ничего импортировать) функции pow < / a> например:

print(pow(2, 10, 10))

Выход:

4

Использование 3-арочного pow может быть более эффективным, чем использование **, а затем %.

4
Daweo 15 Фев 2021 в 12:30

Это выражение было бы

math.pow(x, y) % z

Поскольку ошибка правильно сообщает вам, math.pow принимает только два аргумента, которые должны реализовать x ** y. Затем вы можете использовать результат для получения модуля.

1
Cory Kramer 15 Фев 2021 в 12:25

Pow может использоваться только для выполнения x в степени y (math.pow (x, y)), поэтому передача 3 параметров на самом деле не имеет смысла для pyhton.

Вместо этого вам следует просто:

answer = (x ** y) % z

Поскольку python поддерживает ** в степени и% в качестве модуля.

Если вы по какой-то странной причине действительно хотите использовать math.pow, вы должны исключить из него аргумент z следующим образом:

answer = math.pow(x, y) % z
1
Luke_ 15 Фев 2021 в 12:26
66207958