`
saber7
  • 浏览: 10214 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

简明python教程 最后练习题答案

阅读更多

这两天在看《python核心编程》,刚好看到 映射和集合类型 部分,突然想起前面刚看完的《简明python教程》(A Byte of Python )全书的最后作者给留的一个练习题还没做呢,就顺便写了一下,我是python新手,所以代码写的可能不是很好,大家莫笑。程序没写异常处理,懒了……

 

题目
创建你自己的命令行 地址簿 程序。在这个程序中,你可以添加、修改、删除和搜索你的联系人(朋友、家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码)。这些详细信息应该被保存下来以便以后提取。
 

 

 

 

#-*-coding=gbk
import cPickle as p
import os

telfile = 'telfile.data'

def update():
    s = raw_input('请输入类似saber7,email:cnsaber7@gmail.com,13002499999,如果用户已存在,将用新资料覆盖 -->')
    ss = s.split(',')

    # 先load出来
    f = file(telfile)
    conlist = p.load(f)
    
    #在读出来的字典的基础上添加或者修改
    conlist[ss[0]] = ss[1:]

    # 把操作后的字典重新写进文件里
    f = file(telfile, 'w')
    p.dump(conlist, f) 
    f.close()
    del conlist 

    # 再打印一下
    f = file(telfile)
    conlist = p.load(f)
    print conlist

def delete():
    #先打印出来给用户
    f = file(telfile)
    conlist = p.load(f)
    print conlist

    d = raw_input('输入你要删除的联系人姓名,如saber7 -->')
    #从conlist字典中删除用户输入的名字那一项
    del conlist[d]
    
    #打印一下删除之后的字典
    print conlist

    #把新的字典写到文件里
    f = file(telfile, 'w')
    p.dump(conlist, f) 
    f.close()
    del conlist
    
def select():
    #先打印出来给用户
    f = file(telfile)
    conlist = p.load(f)
    print conlist
    name = raw_input('输入你要查询的联系人姓名,如saber7 -->')
    print name, conlist[name]

def main():
    while True:
        menu = raw_input('''
                            1.查询
                            2.添加 / 修改
                            3.删除
                            x.退出
                            ----->''')
        if menu == '1':
            select()
        elif menu =='2':
            update()
        elif menu == '3':
            delete()
        elif menu == 'x':
            import sys;sys.exit()
        else:
            print '没有这个选项,请重新输入'

#先判断是否存在telfile.data文件,如果存在,调用main(),不存在就创建
if os.path.exists('telfile.data'):
    main()
else:
    f = file('telfile.data', 'w')
    conlist = {'saber7':'cnsaber7@gmail.com,87653285'}
    p.dump(conlist, f) 
    f.close()
    del conlist
    main()

http://blog.secer.org/

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics