Python Math libraries - How to?

A

aguirre.adolfo

Hi, I am a very newbie who would very much appreciate some hints.

Python 2.52. on Windows XP for now. Soon on Ubuntu 8

I am teaching myself Python following free tutorials. I can solve
problems using arithmetic, but when I try to upgrade the programs
using math libraries nothing seems to work. I downloaded a 2002
tutorial from Zelle "An Introduction to Computer Science" where he
uses a "import math" statement to calculate a square root. I tried the
"pi" library function but it didn´t work. I tried using def Pi() it
did not work either. I am yet to find a tutorial that explains how to
declare (or initialize) and pass numbers to the functions such as
"cos(x)" and the pi which does not have a variable in it. Is just a
constant.

Here is the arithmetic program I made that it worked before I added
the "import math" line. I erased the constant p = 3.1416 and added
the "i" for the library function "pi" in the algorithms. But I get an
error message not recognizing "pi"



#volumen.py
# A program to compute the volume and surface area of a sphere
import math

def main():

print "This program calculates the volume and surface area of a
sphere"
print
r = input("Please enter the radious: ")
print
r3 = r*r*r
volume = 4/3*pi*r3
r2 = r*r
surface = 4*pi*r2
print "The Volume is", volume, " Cubic centimeters"
print
print "The Surface area is", surface, " square centimeters"

main()

*** Error message *************

Traceback (most recent call last):
File "C:/Python25/z - MIS PROGRAMAS/volumen-b.py", line 20, in
<module>
main()
File "C:/Python25/z - MIS PROGRAMAS/volumen-b.py", line 13, in main
volume = 4/3*pi*r3
NameError: global name 'pi' is not defined
 
J

John Henderson

Hi, I am a very newbie who would very much appreciate some
hints.

Python 2.52. on Windows XP for now. Soon on Ubuntu 8

I am teaching myself Python following free tutorials. I can
solve problems using arithmetic, but when I try to upgrade the
programs using math libraries nothing seems to work. I
downloaded a 2002 tutorial from Zelle "An Introduction to
Computer Science" where he uses a "import math" statement to
calculate a square root. I tried the
"pi" library function but it didn´t work. I tried using def
Pi() it did not work either. I am yet to find a tutorial that
explains how to declare (or initialize) and pass numbers to
the functions such as "cos(x)" and the pi which does not have
a variable in it. Is just a constant.

Here is the arithmetic program I made that it worked before I
added
the "import math" line. I erased the constant p = 3.1416 and
added the "i" for the library function "pi" in the algorithms.
But I get an error message not recognizing "pi"



#volumen.py
# A program to compute the volume and surface area of a sphere
import math


Change that line, "import math", to:

from math import *

and it'll work. I'm learning too, so some proficient person
might be able to explain the difference to both of us :)

John
 
C

Cousin Stanley

Here is the arithmetic program I made that it worked before I added
the "import math" line.

#volumen.py
# A program to compute the volume and surface area of a sphere
import math

....
NameError: global name 'pi' is not defined
....
.... return 4 * pi * r ** 2
........ return ( 4. / 3. ) * pi * r ** 3
........ s = surface( n )
.... v = volume( n )
.... print ' %2d .... %9.4f .... %9.4f ' % ( n , s , v )
....
 
D

delta2

I am also using Zelle's book to teach myself programming and Python. I also
had a problem with " import math ", but the alternative of " from math
import * " is working for me. I don't know why one works and the other
doesn't.
 
G

Gabriel Genellina

I am also using Zelle's book to teach myself programming and Python. I
also
had a problem with " import math ", but the alternative of " from math
import * " is working for me. I don't know why one works and the other
doesn't.

Note that they do different things. When you execute `import math`, the
math module is loaded, but the ONLY new name you get is `math`. If you
want the sqrt function, you have to use math.sqrt(2)
When you execute `from math import *`, the math module is loaded the same
as above, but ALL the public names defined in that module are now
available in the current namespace. So the sqrt function is now available
simply as sqrt

Note that the form `from xxx import *` is intended mainly for usage in the
interactive interpreter, for testing and playing only. If you use that
form from a few modules, the namespace becomes too cluttered, then you
don't know from where some name is coming, and a later import may
inadvertidely replace previous names.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,992
Messages
2,570,220
Members
46,807
Latest member
ryef

Latest Threads

Top