Hi Wayne,

Yes - that helps.  I missed the correct combination of parentheses.

Now I am trying to improve my aesthetics, as Evert suggested earlier

> Personally, I would print this as 7.63e-03 +- 0.83e-03, which shows the 
> precision a bit better. But that's just a matter of aesthetics, and would 
> make things even more complicated (then again, since you are printing numbers 
> and formatting them, you are concerned about aesthetics).

I agree with him here, and would like to match this style.  I have been trying 
to figure out if you can specify the "mantissa" and exponent in scientific 
notation, by reading in the string.format section of python, but have been 
unsuccessful.  Is there an easy way to do this?  To be precise, I now have

> a = 0.0762921383941; ea = 0.000830132912068
> p = int(("%.1e" % (a / ea)).split('e')[-1]) 
> print(('%.' + str(int(2+p)) +'e +- %.1e') % (a, ea))
7.629e-02 +- 8.3e-04

and instead I would like this to print

7.629e-02 +- 0.083e-02

I could imagine writing a little function that does all this, but am hoping 
there is a quick (and dirty) way to just force the scientific notation to into 
this format - I guess by forcing the power of the exponent.


Thanks,

Andre





On Oct 5, 2010, at 6:39 PM, Wayne Werner wrote:

> On Tue, Oct 5, 2010 at 7:51 PM, Andre' Walker-Loud <walksl...@gmail.com> 
> wrote:
> Hi Alan,
> 
> The point I can not get to work is
> 
> > fmt = "%.%de + %.1e" % n  else:
> 
> when I try this, I get (python 2.6.5, OS X 10.6)
> 
> > n = 3; fmt = "%.%de + %.1e" % n; fmt
> '%de + 3.0e+00'
> 
> But something like the "%.%de " %n is exactly what I am looking for - if I 
> could get it to work.
> 
> 
> a = 0.00762921383941
> ea = 0.000830132912068
> 
> 
> p = int(("%.1e" % (a / ea)).split('e')[-1]) # grab the power in the 
> scientific n
> otation (is there a better way?)
> if p >= 0:
>     print(('%.' + str(int(2+p)) +'e +- %.1e') % (a, ea))
> else:
>     print('%.2e +- %.1e' % (a, ea))
>     #(desired output): 7.63e-03 +- 8.3e-04
> 
> 
> This works for me - I added some extra parenthesis because the original was 
> giving me this error:
> 
> Traceback (most recent call last):
>   File "exponent.py", line 7, in <module>
>     print('%.' + str(int(2+p)) +'e +- %.1e' % (a, ea))
> TypeError: not all arguments converted during string formatting
> 
> HTH,
> Wayne
> 

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to