Ответ 1
pow
встроен в язык (не является частью математической библиотеки). Проблема в том, что вы не импортировали математику.
Попробуйте следующее:
import math
math.sqrt(4)
Всякий раз, когда я пытаюсь использовать любую из встроенных функций модуля экспоненции и логарифмов Python, я получаю следующее:
NameError: name 'sqrt' is not defined
Я попытался использовать math.sqrt(4)
, sqrt(4)
и sqrt(4.0)
, но никто из них не работает. Исключением является pow
, который работает так, как предполагалось. Это действительно странно, и я не уверен, что случилось.
pow
встроен в язык (не является частью математической библиотеки). Проблема в том, что вы не импортировали математику.
Попробуйте следующее:
import math
math.sqrt(4)
Вы также можете импортировать как
from math import *
Затем вы можете использовать любую математическую функцию без префикса математики. например.
sqrt(4)
добавить:
import math
в начале. и затем используйте:
math.sqrt(num) # or any other function you seem neccessary
Вы должны сказать math.sqrt
, когда используете его. Или, do from math import sqrt
.
Хм, я просто внимательно прочитал ваш вопрос... Как вы импортируете math
? Я просто попробовал import math
, а затем math.sqrt
, который работал отлично. Вы делаете что-то вроде import math as m
? Если это так, то вы должны префикс функции с помощью m
(или любого другого имени, которое вы использовали после as
).
pow
работает, потому что есть две версии: всегда доступная версия в __builtin__
и другая версия в math
.
В
из math import sqrt
Использование sqrt (4) работает отлично. Вам нужно использовать только math.sqrt(4), когда вы просто используете "импортную математику".