On Friday, Apr 15, 2005, at 18:46 America/Chicago, [EMAIL PROTECTED] wrote:


I did look at your example about using the longest number, but I
couldnt really understand all of the code, and ended up deciding to
arrange it so that the two columns were left-aligned: it looked like
it would align them down the center in your example? Let me know if I
am misunderstanding something.

Those that are fluent in using the string formatting will groan, but I usually don't need fancy formatting and can get by with pretty simple commands. I just printed the first column right formatted and printed the name right next to it (so it appeared to be left formatted). The comma in the print statement added the space.

Here is my simple-minded way of thinking about the two column problem:
        
1) get the data into fixed width strings
2) add those two strings together and print them

Now, as you are seeing, the alignment options for a string will fill in the padding spaces that you need. Figuring out how long each column should *minimally* be (based on the actual data) is an extra layer of difficulty, but to keep it simple you could just pick widths that you think are reasonable and then do something like this:

###
high = [(1000,"Denise"), (945,"Denise"), (883,"Denise"),
                 (823,"Grant"), (779,"Aaron"), (702,"Pete"),
                 (555,"Tom"), (443,"Tom"), (442,"Robin"), (404,"Pete")]

for score, who in high:
        col1 = str(score).rjust(10)
        col2 = who.rjust(20).replace(' ', '.') #replace spaces with dots
        print col1 + col2
###
--the output--
      1000..............Denise
       945..............Denise
       883..............Denise
       823...............Grant
       779...............Aaron
       702................Pete
       555.................Tom
       443.................Tom
       442...............Robin
       404................Pete
--end output--

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to