On 14/11/11 18:58, Cranky Frankie wrote:
I'm working on writing out postional output. When I use this statement:

print('%-40s%s' % (element_list[0], element_list[1]))   
...
a very funny thing happens. When I open the file in Notepad, the
columns are not lined up, however when I switch the font to Courier,
they * are* lined up. So what's happening

The data in the file is simply a set of characters. How that is represented visually depends on the display device settinghs, especially the font.

Some fonts (like courier) are mono-spaced which means every character takes up the same amount of horizontal space, thus your output aligns correctly.

But other fonts are proportionately spaced which means than an 'i' takes up less room than an 'm'. This is more visually appealing for
free text but it messes up the spacing for your type of output.

If you want to display the data nicely after processing then you are better off using a markup language such as HTML and creating a table. Then it can be displayed in any browser using any font you like and the table structure will ensure it all lines up.

But, it's more work to create the output than simple a single print operation!

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

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

Reply via email to