[Tutor] Scientific Notation + 18 Digit Precision
Hubert Fitch
photonquark at comcast.net
Sun Nov 27 13:27:07 CET 2005
Thanks to all of you (Alan, Chris, Kent) for your responses!
Before I try to follow up on these suggestions, it might be good to examine the display function module, and provide a few lines from a .py module that needs display.
Typical lines in a defintion module, that need a formatted display :
(All referenced symbols in this module are previously defined in another module)
# -------------------------------------------------------------------------------------------------------------------
# VARIABLE NAME, DATA , ASSIGNMENT FORMULA, COMMENT
# -------------------------------------------------------------------------------------------------------------------
#
# INDUCTANCE
L0 = pi*mu0*r0 # Classical Inductance
# CAPACITANCE
c0 = 4*pi*ep0*r0 # Classical Cpacitance
n = 2 # Quantum Number
# RADIUS
r3 = (r0*(n/a)**2 ) # Bohr radius
# ORBIT VELOCITY
v3 = Q0**2/(2*h*ep0*n) # Bohr Orbit Velocity
v = a*C/n
# Bohr Orbit Velocity
v3 = v # Bohr Orbit Velocity
g3 = (1-v3**2/C**2)**-0.5 # Gamma
# FREQUENCY
f3 = g3*m0*v3**2/h # Bohr Orbit deBroglie frequency
---------------------------------------------------------------------------------------------
Most of the formatted results are already provided in the correct form.
What should be changed in this display function module?
-----------------------------------------------------------------------------------------------------------------
Display Function Module:
(Written by Dr. Steve Spiklemire, Physics Dept Head Universtiy of indianapolis)
-----------------------------------------------------------------------------------------------------------------
def DisplayPyFile(fname, context=None):
if context is None:
context = globals()
f = open(fname)
lines = f.readlines()
f.close()
for line in lines:
line = line.strip()
if not line:
continue
leftAndRight = line.split('#',2)
comment = ''
if len(leftAndRight)>1:
comment = leftAndRight[1]
assignment = leftAndRight[0]
leftAndRight = assignment.split('=')
if len(leftAndRight) == 2:
name = leftAndRight[0].strip()
exec(assignment, context)
if context.get(name,None) is not None:
value = context.get(name,'???')
print "%10s = %18.15e (%s)\t[%s]" % (name, value, assignment, comment)
else:
print "%s not defined. %s" % (name, assignment)
else:
print line
-----------------------------------------------------------------------------------------------------------------------------
Hubert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20051127/52fa26a6/attachment.htm
More information about the Tutor
mailing list