Модуль 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))