Математический модуль Python

Всякий раз, когда я пытаюсь использовать любую из встроенных функций модуля экспоненции и логарифмов Python, я получаю следующее:

NameError: name 'sqrt' is not defined

Я попытался использовать math.sqrt(4), sqrt(4) и sqrt(4.0), но никто из них не работает. Исключением является pow, который работает так, как предполагалось. Это действительно странно, и я не уверен, что случилось.

Ответы

Ответ 1

pow встроен в язык (не является частью математической библиотеки). Проблема в том, что вы не импортировали математику.

Попробуйте следующее:

import math
math.sqrt(4)

Ответ 2

Вы также можете импортировать как

from math import *

Затем вы можете использовать любую математическую функцию без префикса математики. например.

sqrt(4)

Ответ 3

добавить:

import math

в начале. и затем используйте:

math.sqrt(num)  # or any other function you seem neccessary

Ответ 4

Вы должны сказать math.sqrt, когда используете его. Или, do from math import sqrt.

Хм, я просто внимательно прочитал ваш вопрос... Как вы импортируете math? Я просто попробовал import math, а затем math.sqrt, который работал отлично. Вы делаете что-то вроде import math as m? Если это так, то вы должны префикс функции с помощью m (или любого другого имени, которое вы использовали после as).

pow работает, потому что есть две версии: всегда доступная версия в __builtin__ и другая версия в math.

Ответ 5

В

из math import sqrt

Использование sqrt (4) работает отлично. Вам нужно использовать только math.sqrt(4), когда вы просто используете "импортную математику".