Подтвердить что ты не робот

Python: имя 'math' не определено Ошибка?

Я начинаю в python и не могу понять, почему это происходит:

from math import *
print "enter the number"
n=int(raw_input())
d=2
s=0
while d<n :
    if n%d==0:
       x=math.log(d)
       s=s+x
       print d
    d=d+1
print s,n,float(n)/s   

Запуск в Python и ввод непустоты дает ошибку

Traceback (most recent call last):
  File "C:\Python27\mit ocw\pset1a.py", line 28, in <module>
    x=math.log(d)
NameError: name 'math' is not defined
4b9b3361

Ответ 1

Изменить

from math import *

к

import math

Использование from X import * обычно не является хорошей идеей, поскольку оно бесконтрольно загрязняет глобальное пространство имен и может представлять другие трудности.

Ответ 2

Вам нужно import math, а не from math import *.

Ответ 3

Вы сделали ошибку.

Когда вы написали:

from math import *
# This imports all the functions and the classes from math
# log method is also imported.
# But there is nothing defined with name math

Итак, когда вы пытаетесь использовать math.log

Это дает вам ошибку, поэтому:

замените math.log на log

Или

замените from math import * на import math

Это должно решить проблему.