Ответ 1
Изменить
from math import *
к
import math
Использование from X import *
обычно не является хорошей идеей, поскольку оно бесконтрольно загрязняет глобальное пространство имен и может представлять другие трудности.
Я начинаю в 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
Изменить
from math import *
к
import math
Использование from X import *
обычно не является хорошей идеей, поскольку оно бесконтрольно загрязняет глобальное пространство имен и может представлять другие трудности.
Вам нужно import math
, а не from math import *
.
Вы сделали ошибку.
Когда вы написали:
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
Это должно решить проблему.