"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