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