[Tutor] Re: [newbie] output formatting

Andrei project5 at redrival.net
Wed Nov 5 09:54:22 EST 2003

Eur van Andel wrote on Wed, 05 Nov 2003 14:26:05 +0100:

Hi,
<snip>
> Now I would like the 9.8 printed either as 09.8 or with an extra leading space.

Well, you're using the wrong numbers in your formatting:

>>> "%0.2f" % 3.14
'3.14' # no padding, 2 decimals
>>> "%02.2f" % 3.14
'3.14' # no padding, since the string is longer than 2 chars
>>> "%05.2f
'03.14' # padded with 0 up to 5 chars
>>> "%5.2f" % 3.14
' 3.14' # padded with spaces, total length = 5
>>> "%010.2f" % 3.14
'0000003.14'# padded with 0, total length = 10
>>> "%010.3f" % 3.14
'000003.140' # 10 long, 3 decimals, 0-padded

It's like this: "%xy.zf"

x can be either 0 (the string will be 0-padded if necessary), or absent
(padded with spaces if necessary). y determines the minimum total length of
the resulting string (including decimals and the dot). z determines the
number of decimals after the dot.

<snip>
> Life is hard for Python newbies :-(

It's probably covered in more detail in one of the tutorials.

> PS. I'm used to:
>
>>for i = 1 to 10 do

> is it really true that I should do
>
>>for i in range(1,10+1)

Depends on your needs. If you just want to do something ten times, you'd
probably say:

for i in range(10):

and be done with it. If necessary, you could add 1 to i inside the string
if you need which loop this is. But generally speaking, it's wiser to count
from 0 than from 1, otherwise you'll run into trouble when accessing lists,
strings, and the likes because you'll need to keep converting back and
forth.

--
Yours,

Andrei

=====
Mail address in header catches spam. Real contact info (decode with rot13):
cebwrpg5 at bcrenznvy.pbz. Fcnz-serr! Cyrnfr qb abg hfr va choyvp cbfgf. V
ernq gur yvfg, fb gurer'f ab arrq gb PP.