Matt Smith wrote: > Hi, Hi... > > I need to find the square root of a number in a program I am writing. I have > imported the 'math' module so I thought I could just call sqrt(x) but I get > an > error message. Extact from my code and error message below. > > > import sys, pygame, math You import the module "math", not what's _inside_ it! (This is important! Both ways are okay, but in your case this is important!)
> > ... > > if ypos >= 384 and velocity > 0: > impactvel = sqrt(velocity ** 2 + (2 * gravity * (ypos - 384 * 160))) > > ... Where did you get this thing called "sqrt"? You didn't define a function called "sqrt", did you? What you need is the "sqrt" function (or method) that lives _inside_ the "math" module, and you *must* tell that to Python, otherwise it won't find it! To fix your problem, either: - Use: "from math import sqrt". But this will import the "sqrt" function only. If all you need from the "math" module is this function/method then this is fine. (Though, this is generally not good practice, since you'll pollute you name space. The other solution is better.) - Or in the line that triggers the error, use: "math.sqrt(..." instead. By using "math." you tell Python where to find this thing that's called "sqrt", which is what you want. > > > Traceback (most recent call last): > File "<stdin>", line 32, in <module> > ValueError: math domain error I see you sent a new message with the actual error which is: Traceback (most recent call last): File "<stdin>", line 32, in <module> ValueError: math domain error which confirm what I wrote above. Hope this helps. Ziyad. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor