Including tutor list. 
Please use ReplyAll when responding to the list.
 

Sorry about that. I am new to this so I didnt know I have to be very specific 
towards every detailIt depends on what you are asking, but in this case 
different downloads include different packages 
so we need to know which OS, which version and which web site you got it from. 
In this case I'll 
assume you got it from the python.org site?

. I downloaded 'Python 3.3.2 Windows x86 MSI Installer (Windows binary -- does 
not include source)' Thats fine it does have Tkinter included. Personally, for 
Windows users I recommend 
getting the Activestate.com version of Python instead. It includes some nice 
extra features 
and it integrates Python more closely with the Windows environment. But thats 
not the 
cause of your problem here.

from Tkinter import *
>
>
>This is the problem. In Python v3 they changed the name of the Tkinter module 
>from 
Tkinter to tkinter(no caps). I think it was just to make the name more 
consistent with 
other modules... The result is you need to change your import to be

from tkinter import *


For the second part of the question.. I don't know which font I am using but I 
think its default font? OK, So in that case how are you running the program? 
Are you using IDLE or a CMD shell window? 
Or something else? One of the problems of using tabs, and of printing directly 
in general, is that the 
program may be displaying in many different environments and therefore with 
different fonts. 
You therefore have limited control over the output. That's why generating an 
HTML page which 
can have font information embedded into it and use tables etc to control layout 
is a more reliable 
option if you need precise control of layout.

If precise control is not so necessary and you think the font will be 
monospaced then you can 
do some things in a print statement that will help, just be aware that it may 
not be 100% effective.

while sMainContinue == "y"or sMainContinue =="yes" or sMainContinue =="YES"or 
sMainContinue =="Y":
>
>    userMainInput = (input("Please select one option from menu: "))
>
>You are making this hard for yourself./ Its usually better to convert the 
>input to lowercase 
(or uppercase if you prefer!) and then compare. So your line above could be:

while sMainContinue.lower() in ('y','yes'):

Also in the input() line you don't need the outer set of parens. But see 
below...

#Robust Options: if input is a letter
>
>    if userMainInput.isdigit():
>        userInput = int(userMainInput)Again its more common in Python to just 
>do the conversion at the input stage and catch an 
exception if the data is bad., so that would look like

   try:
      userInput = int( input("Please select one option from menu: ") )

   except ValueError:
       # deal with non numeric input here     

#Options1
>        if userInput == 1:
>            print("\n********Road Information**********")
>            print("Road Name","Speed",sep = "\t\t")
>            for key,value in Dic.items():
>                print(key,value,sep = "\t\t")And here is the display part and 
>it relies on tabs. Tabs work on fixed column positions so to be 
consistent you would need to check the length of the strings and insert the 
correct number of tabs 
depending on whether the string was shorter or longer. In your case it could be 
anywhere from 
1 tab to 3 tabs... That's messy and using tabs for formatting like that is not 
recommended.

Instead Python offers a formatting mechanism that you can apply to a string 
before it is 
printed which gives you much more control over spacing and justification etc.

You could read about it in the official docs but there is a more accessible 
tutorial here:

http://infohost.nmt.edu/tcc/help/pubs/python/web/new-str-format.html

The key is to use fixed length string fields to output your data.
You may optionally choose to left justify the name and right justify the 
speeds, 
or you could just left justify everything. The choice is yours.

But remember format() still relies on the user having monospaced fonts for it 
to work properly.

HTH,

-- 
Alan G 
Author of the Learn to Program web site 
http://www.alan-g.me.uk/ 
http://www.flickr.com/photos/alangauldphotos 
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to