"FT" <[EMAIL PROTECTED]> wrote

#Copying the Address Book With New Name!
def copy_Book (book):
    save = 1
file_name2 = text_Input(" Enter Name Of File To Save Address Book:")
    if file_name2 == "":
        print "No File Saved!"
       save = 0
    if save == 1:
       try:
           store = open(file_name2, 'w')
        except:
           print "File Error! No File Saved!"
           save = 0
   if save == 1:
       for name,entry in book.items():
           store.write(name + '\n')
           store.write(entry + '\n')
       store.close()
       print "%s File Saved and Closed!" % file_name2

This is unnecessarily complex. By rearranging the logic slightly we
can write it as:

def copy_Book (book):
file_name2 = text_Input(" Enter Name Of File To Save Address Book:")
    if file_name2:
       try:
          store = open(file_name2, 'w')
          for name,entry in book.items():
             store.write(name + '\n')
             store.write(entry + '\n')
          store.close()
          print "%s File Saved and Closed!" % file_name2
       except:
           print "File Error! No File Saved!"
           return

However, I'd prefer to pass the filename in as an argument since
mixing processing and user interaction is usually a bad idea.
Also in the tutorial I don't use try/except because I haven't
covered them yet!

#Getting User Input
def get_Choice( menu, msg=""):
    e=1
    while e==1:
        e=0
        try:
            choice =  key_input(msg)
        except:
            choice=0

Again the use of the e flag is making the structure more complex
than is necessary. In Python you can usually avoid the use of
such flags by reworking the logic - often by reversing a boolean
test as I did above.

#DO TEXT INPUT WITH ENTRY ON NEXT LINE!
def text_Input(prompt):
    print prompt
    return (raw_input(">> "))

Just use:

raw_input(prompt + "\n>> " )

def add_Entry (book):
    name = text_Input("Enter a name: ")
    if name != "":
entry = text_Input("Enter Street, City/Town and Phone Number: ")
   if name != "" and entry != "":
       book[ name.capitalize()] = entry
   else:
        print "No entry saved!"

Could be simplified to:

def add_Entry (book):
    name = text_Input("Enter a name: ")
    entry = text_Input("Enter Street, City/Town and Phone Number: ")
    if name and entry:
        book[ name.capitalize()] = entry
    else:
        print "No entry saved!"


def key_input( msg):
    "ENTER A KEY OR FUNCTION KEY, (ALT, CTRL, SHIFT...KEY)"
    # clear the keyboard buffer
    ch=""; ch1=""; sch=""
    while msvcrt.kbhit():
        ch = msvcrt.getch()

Given the OP was a novice I suspect this might be a tad advanced
at this stage :-)

--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld

_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to