Математический модуль Python - PullRequest
20 голосов
/ 09 января 2012

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

NameError: name 'sqrt' is not defined

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

Ответы [ 7 ]

53 голосов
/ 09 января 2012

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

Попробуйте это:

import math
math.sqrt(4)
14 голосов
/ 04 марта 2014

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

from math import *

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

sqrt(4)
5 голосов
/ 10 января 2012

добавить:

import math

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

math.sqrt(num)  # or any other function you seem neccessary
2 голосов
/ 09 января 2012

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

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

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

1 голос
/ 12 июля 2018
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))
0 голосов
/ 23 апреля 2019

импорт математики как ma = int (input ("Enter the no")) print (m.sqrt (a))

из математического импорта sqrt print (sqrt (25))

из математического импорта sqrt as s print (s (25))

из математического импорта * print (sqrt (25))

Все работы.

0 голосов
/ 03 июля 2017

В

из математического импорта sqrt

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

...