Reputation: 1139
I am a beginner in python and cant understand why this is happening:
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
Running it in Python and inputing a non prime gives the error
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
Upvotes: 43
Views: 159738
Reputation: 224
How about (when you need only math.pi
):
from math import pi as PI
and then use it like PI
symbol?
Upvotes: 1
Reputation: 45696
You did a mistake..
When you wrote :
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
So, When you try using math.log
It gives you error, so :
replace math.log
with log
Or
replace from math import *
with import math
This should solve the problem.
Upvotes: 10
Reputation: 500663
Change
from math import *
to
import math
Using from X import *
is generally not a good idea as it uncontrollably pollutes the global namespace and could present other difficulties.
Upvotes: 72