python大作业:简单的通讯录

import sys

class TelephoneBook(object):
    def __init__(self):
        self.data=[]
        with open("通讯录.txt", 'r', encoding='utf-8') as f:
            for line in f.readlines():
                line = line.strip('\n')
                self.data.append(line)
            
    def show_menu(self):
        while True:
            print("********************")
            print("欢迎使用[通讯录] V1.0")
            menu = {'1': '新建联系人',
                    '2': '查询联系人',
                    '0': '退出系统'}
            for k, v in menu.items():
                print(k + '. ' + v)
            print("********************")
            command = input('请选择操作功能:')
            if command == '1':
                self.add_info()
            elif command == '2':
                self.show_info()
            elif command == '0':
                print('退出...')
                sys.exit()

    def add_info(self):
        new_contact = dict()
        new_contact['姓名'] = str(input('请输入姓名:'))
        new_contact['手机号'] = str(input('请输入电话:'))
        new_contact['qq'] = str(input('请输入QQ号码:'))
        new_contact['mail'] = str(input('请输入邮箱:'))
        if new_contact['姓名']=='' or new_contact['手机号']=='':
            print("姓名或电话不能为空,尝试重新输入吧!")
        else:
            self.data.append(new_contact)
            if self.update_contact()==True:
                print('成功添加'+new_contact['姓名']+'为联系人')
            else:
                print("添加失败")

    def show_info(self):
        contact_query = [] 
        find_info = input('请输入要查询的姓名:')
        if find_info == '':
            print("请输入有效姓名")
            self.show_info()
        else:
            find_info=str(find_info)
        #flag=0
        if len(self.data):
            for item in self.data:
                if item=='':
                    continue
                else:
                    d = dict(eval(str(item)))
                    if d['姓名'] == find_info:
                        contact_query.append(d)
            if len(contact_query)==0:
                print("联系人不存在")
            else:
                for item in contact_query:
                    print("姓名:"+item.get('姓名'))
                    print("手机号:"+item.get('手机号'))
                    print("qq:"+item.get('qq'))
                    print("mail:"+item.get('mail'))
        else:
            print("通讯录还没有联系人!快去添加吧!")

    def update_contact(self):
        with open('通讯录.txt', 'w', encoding='utf-8') as f:
            try:
                for item in self.data:
                    f.write(str(item)+'\n')
                return True
            except Exception as e:
                print('操作失败:%s' % e)
                return False

    def main(self):
        self.show_menu()

if __name__ == '__main__':
    a1 = TelephoneBook()
    a1.main()

自己测试过挺多次的,没有什么大问题。一个很简单的通讯录实现,仅供参考。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值