博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 案例一(电话铺)
阅读量:5142 次
发布时间:2019-06-13

本文共 2492 字,大约阅读时间需要 8 分钟。

经过自己努力,做了一个简单的电话铺的录入和查询小程序,比较简单,喜欢的朋友可以练练手。

题目:

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

用到的知识点:

  1. cPickle
  2. 简单文件读写

代码:

# coding=utf-8'''姓名年龄email查询修改'''import cPickle as pimport osclass person(object):    '''人员详情'''    def __init__(self, name=None, age=None, email=None):        self.name = name        self.age = age        self.email = emaildef show_all():    '''打印所有人员'''    persons = get_persons()    if len(persons) > 0:        for item in persons:            print 'name: %s, age: %s, email: %s' % (item.name, item.age, item.email)    else:        print "There is no person"def add_person(name, age, email):    '''添加人员'''    #判断是否为空    list = get_persons()    with file('persons','w') as f:        list.append(person(name, age, email))        p.dump(list,f)def get_persons():    '''获取人员列表'''    if not os.path.exists('persons'):        file('persons','w').close()        return []    with file('persons') as f:        data = p.load(f)        return data if data != None else []def find_person(name):    '''根据姓名打印信息'''    persons = get_persons()    for person in persons:        if person.name == name:            print 'name: %s, age:%s, email:%s' % (person.name,person.age,person.email)            return    print 'This no person named: name'def del_person(name):    '''根据姓名删除人员'''    persons = get_persons()    for person in persons:        if person.name == name:            persons.remove(person)            with file('persons','w') as f:                p.dump(persons,f)            print 'delete success!'            return    print 'This no person named: name'def main():    '''显示欢迎语句'''    hello = '''Welcome please input your purpose     1 --> see all person's detail    2 --> find person by name    3 --> add person    4 --> delete person    5 --> exit '''    while True:        m = raw_input(hello + '\n->')        #print m        if m == '3':            name = raw_input("name: ")            age = raw_input("age:")            email = raw_input("email:")            add_person(name, age, email)            print "ok!"        elif m == '1':            show_all()        elif m == '2':            name = raw_input("Enter the person's name: ")            find_person(name)        elif m == '4':            name = raw_input("Enter the person's name: ")            del_person(name)        elif m == '5':            os.sys.exit(0)if __name__ == '__main__':    main()

 

转载于:https://www.cnblogs.com/birdofparadise/p/7570077.html

你可能感兴趣的文章
通过XmlSerializer 实现XML的序列化与反序列化
查看>>
根据对象的某一属性对数组进行排序
查看>>
SSH
查看>>
leetcode 19.删除链表的第n个节点
查看>>
wps操作记录
查看>>
Java 实例 数组之间的相乘,并计算数组的长度
查看>>
Javascript闭包(Closure)
查看>>
这个表明将http协议转成websocket协议
查看>>
关于堆栈的讲解(一)
查看>>
拓展中国剩余定理(不互质的情况)
查看>>
C# ASP.NET 读取EXCEL 单元格 读取 空值 不显示
查看>>
R语言学习-sep和rep
查看>>
PLC串口通讯时报运算错误
查看>>
joomla
查看>>
LeetCode——Longest Consecutive Sequence
查看>>
网页只能在微信内置浏览器中访问
查看>>
Windows Phone 7 优秀开源项目收集
查看>>
白盒交换机NOS列表(picos/SnapRoute/ONL)
查看>>
微信小程序设置控件权重
查看>>
第六单元 用户、群组和权限
查看>>