用python做一个通讯录系统

用python的easygui模块做一个简易通讯录的系统

它一共有3个功能:

        1. 添加联系人

        2. 查找联系人

        3. 删除联系人

先看一下主界面:

下面是写入联系人的界面: 

下面是查询联系人的界面:

它可以通过联系人姓氏开头的拼音查找、姓名开头查找、手机号码查找、姓名查找的方式来查询联系人。

点击“退出通讯录系统”可以退出程序。

在编写程序前需要导入一些模块:

import easygui as gui
from pypinyin import pinyin,NORMAL
from os import stat

 easygui和pypinyin是第三方模块,需要先下载才能导入。os是标准库,无需下载。

下面是主程序的代码:

mail=open('通讯录.txt','a')
mail=[]
if stat('通讯录.txt').st_size>0:
    a=open('通讯录.txt','r')
    b=a.read()
    a.close()
    b=b.split('-')
    num=2
    for i in range(len(b)):
        if i%num==0:
            mail.append(b[i:i+num+1])
            num=3
print('欢迎使用通讯录程序!\n')
mail_list=['写入联系人','查找联系人','删除联系人','退出通讯录程序']
write_mail=['请输入联系人姓名','请输入联系人号码']
find=['联系人拼音姓氏查找','联系人姓氏开头查找','联系人手机号码查找','联系人姓名查找','查看所有联系人']
while True:
    option=gui.buttonbox('请选择操作选项','通讯录系统',mail_list)
    print('您选择的选项:',option)
    if option==mail_list[3]:
        bye=gui.ccbox('您确定要退出吗?','退出程序',['  退出  ','  取消  '])
        if bye==True:
            break
        continue

    if option==mail_list[0]:
        window=gui.multenterbox('请输入以下信息','添加联系人',write_mail)
        if window==None:
            continue
        if len(window[0])==0 or len(window[1])<11 or len(window[1])>11 or window[1].isdigit()==False:
            error=gui.msgbox('请按照正确格式写入联系人\n\n例:\n\n\t联系人姓名: 小明\n\t电话号码: 13596707980','格式错误',ok_button='知道了')
            continue
        name=window[0]
        num=window[1]
        pinxie=pinyin(name,style=NORMAL)
        number=''
        for i in range(len(num)):
            number+=num[i]
            if len(number)==3:
                number+=' '
            if len(number)==8:
                number+=' '
        wrong=0
        if len(mail)>0:
            for i in range(len(mail)):
                if name in mail[i] or number in mail[i]:
                    wrong+=1
        if wrong>0:
            error=gui.msgbox('您输入的联系人姓名或电话号码已存在,请重新添加','联系人重复',ok_button='好的')
            continue
        mail.append([name,number,pinxie[0][0][0]])
        mail1=open('通讯录.txt','w')
        mail2=''
        for i in range(len(mail)):
            if len(mail2)>0:
                mail2+='-'
            mail2+=mail[i][0]
            mail2+='-'
            mail2+=mail[i][1]
            mail2+='-'
            mail2+=mail[i][2]
        mail1.write(mail2)
        mail1.close()
        finish=gui.msgbox('联系人姓名: {}\n联系人电话号码: {}\n\n联系人添加完成'.format(name,num),'联系人添加完成',ok_button='好的')

    if option==mail_list[1]:
        if len(mail)==0:
            error=gui.msgbox('联系人为空,无法查找','未添加联系人',ok_button='好的');continue
        find_mail=gui.choicebox('请选择查找方式','查找联系人',find)
        if find_mail==None:
            continue
        start=[]
        if find_mail==find[0]:
            pinyin=gui.enterbox('请输入联系人姓氏拼音开头字母(大小写都行)','姓氏拼音开头字母查找')
            if pinyin==None:
                continue
            if len(pinyin)==0 or len(pinyin)>1:
                error=gui.msgbox('请输入正确格式!\n\n例:\n\t小明: "x" 或者"X"','格式错误',ok_button='知
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值