在我的comp-sci入门课的最后几天里,我们要创建字典。书中的家庭作业程序要求我们创建一些可以查找、添加、更改和删除一组姓名和电子邮件地址的内容。它要求我们对字典进行pickle操作,但对我来说更重要的是,它规定每次程序启动时,它都应该从文件中检索字典并取消对它的pickle操作。我不知道我是否把自己编入了一个角落,但我不知道如何利用我目前所做的来做到这一点。
我的代码:
import mMyUtils
import pickle
LOOK_UP = 1
ADD = 2
CHANGE = 3
DELETE = 4
QUIT = 5
def main():
emails = {}
choice = 0
while choice != QUIT:
choice = getMenuChoice()
if choice == LOOK_UP:
lookUp(emails)
elif choice == ADD:
add(emails)
elif choice == CHANGE:
change(emails)
elif choice == DELETE:
delete(emails)
else:
exit
def getMenuChoice():
print()
print('Name and Email Address Catalog')
print('------------------------------')
print('1. Look up an email address')
print('2. Add a new email address')
print('3. Change an email address')
print('4. Delete an email address')
print('5. Quit the program')
print()
choice = int(input('Enter the choice: '))
while choice < LOOK_UP or choice > QUIT:
choice = int(input('Enter a valid choice: '))
return choice
def lookUp(emails):
name = input('Enter a name: ')
print(emails.get(name, 'Not found.'))
def add(emails):
name = input('Enter a name: ')
address = input('Enter an email address: ')
if name not in emails:
emails[name] = address
pickle.dump(emails, open("emails.dat", "wb"))
else:
print('That entry already exists.')
def change(emails):
name = input('Enter a name: ')
if name in emails:
address = input('Enter the new address: ')
emails[name] = address
pickle.dump(emails, open("emails.dat", "wb"))
else:
print('That name is not found.')
def delete(emails):
name = input('Enter a name: ')
if name in emails:
del emails[name]
else:
print('That name is not found.')
main()
我知道我应该将emails变量设置为pickle.load的某种形式,但我一辈子都搞不懂。mMyUtils是我为try/except logic创建的一个库,一旦新的东西开始工作,我就把它放进去。
目前没有回答
相关问题 更多 >
编程相关推荐