Sambo wrote: > I have the following module: > ------------------------------- > import math > > def ac_add_a_ph( amp1, ph1, amp2, ph2 ): > > amp3 = 0.0 > ph3 = 0.0 > ac1 = ( 0, 0j ) > ac2 = ( 0, 0j ) > ac3 = ( 0, 0j ) > ac1 = complex( amp1 * math.cos( math.radians( ph1 ) ), amp1 * math.sin( > math.radians( ph1 ) ) ) > ac2 = complex( amp2 * math.cos( math.radians( ph2 ) ), amp2 * math.sin( > math.radians( ph2 ) ) ) > ac3 = ac1 + ac2 > amp3 = math.abs( ac3 ) > ph3 = math.atan( ac3.imag / ac3.real ) > return [amp3, ph3] > -------------------------------------- > when I import it (electronics) in python.exe in windows2000 and > try to use it, it croaks. ??? > >>>>import math >>>>import electronics >>>>print electronics.ac_add_a_ph( 10, 0 , 6 , 45 ) > > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "f:\devel\python\electronics.py", line 10, in ac_add_a_ph > ac1 = complex( amp1 * math.cos( math.radians( ph1 ) ), amp1 * math.sin( > math > .radians( ph1 ) ) ) > NameError: global name 'cos' is not defined > > global?? huh?
That's not what I get. [~]$ cat electronics.py import math def ac_add_a_ph( amp1, ph1, amp2, ph2 ): amp3 = 0.0 ph3 = 0.0 ac1 = ( 0, 0j ) ac2 = ( 0, 0j ) ac3 = ( 0, 0j ) ac1 = complex( amp1 * math.cos( math.radians( ph1 ) ), amp1 * math.sin( math.radians( ph1 ) ) ) ac2 = complex( amp2 * math.cos( math.radians( ph2 ) ), amp2 * math.sin( math.radians( ph2 ) ) ) ac3 = ac1 + ac2 amp3 = math.abs( ac3 ) ph3 = math.atan( ac3.imag / ac3.real ) [~]$ python Python 2.4.1 (#2, Mar 31 2005, 00:05:10) [GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import electronics >>> electronics.ac_add_a_ph(10, 0, 6, 45) Traceback (most recent call last): File "<stdin>", line 1, in ? File "electronics.py", line 13, in ac_add_a_ph amp3 = math.abs( ac3 ) AttributeError: 'module' object has no attribute 'abs' >>> > what does abs stand for? why is that not absolute value? hmmm. > Hmm, complex numbers, cool I don't even have any idea where C > stands on this. Change math.abs() to abs(). It's a builtin function. Yes, it does compute the absolute value. Fixing that: >>> import electronics >>> electronics.ac_add_a_ph(10, 0, 6, 45) [14.861117513241918, 0.2895134725436232] >>> -- Robert Kern [EMAIL PROTECTED] "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list