[Tutor] First program -- would like comments and criticisms
benmarkwell at gmail.com
benmarkwell at gmail.com
Sat Feb 18 20:00:14 CET 2006
Here is my first stab at putting together a working program. It is a
glossary that you can add words and definitions to, or look up words and
their definitions. There are a couple of problems here and there, but it
basically does what I set out for it to do. All comments and criticisms are
welcome. I attached the data file that goes with the script in case anybody
wanted to actually run it, so they wouldn't have to make their own
dictionary file to access.
Thanks in advance.
Ben
# File gloss.py
# Author Ben Markwell
# Date Feb 2006
'''
This script is a glossary in which you can input definitions
and look up words and their definitions.
'''
import cPickle as p
import textwrap as t
f = file(r'g:\dev\python\data\gloss.data', 'r')
gloss = p.load(f)
#---Def
Functions---#000000#FFFFFF--------------------------------------------------
def findWord():
words = gloss.keys()
letter = raw_input('That word is not in the glossary. \nWhat is the
first letter of the word? ')
for x in range(len(words)):
if words[x].startswith(letter):
print words[x]
# Get word and check if it is in the glossary then print the def.
def getWordDef():
word = raw_input('enter a word: ')
if gloss.has_key(word):
line = gloss.get(word)
lineWrap(word)
else:
findWord()
word = raw_input('Enter the word: ')
line = gloss.get(word)
lineWrap(word)
# Print a menu of choices to the screen
def printMenu():
print '1 - Enter a word and definition.'
print '2 - Look up a word.'
print '3 - Quit'
print
# Wrap the output so it fits the screen nicely
def lineWrap(word):
line = gloss.get(word)
if len(line) < 81:
print line
else:
wrapLines = t.wrap(line, 80)
for line in range(len(wrapLines)):
print wrapLines[line]
# End of Def Functions xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
num = '0'
printMenu()
while num != '3':
num = raw_input('What do you want to do? ')
if num == '1': # if 1 in choice enter a word to look up
word = raw_input('Enter word: ')
_def = raw_input('Enter definition: ')
gloss[word] = _def
elif num == '2': # if 2 is the choice enter word and def
getWordDef()
elif num == '3': # if 3 is the choice, save changes and quit
newGloss = file(r'g:\dev\python\data\gloss.data', 'w')
p.dump(gloss, newGloss)
newGloss.close()
f.close()
print
print 'Goodbye'
break
else:
printMenu()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20060218/0ffc85e6/attachment.htm
More information about the Tutor
mailing list