python通讯录管理程序 有界面_蛋疼写的python 通讯录管理

我以后啊,再也不敢把文本界面的程序模仿成图形界面的了,因为需要处理的东西太多了 ,所以我以后写的程序,尽量把菜单写得简单一点,至于图形界面,就留给别人了

现在这个程序的菜单还是有bug  大家凑合着用吧 ,但是程序对于文件的读取和写入  是没有问题的

以下是两个程序,

名为 address_book.py

1 #!/usr/bin/python3 2 import os,sys 3 os.chdir("./")       #把读取文件的目录设置在当前目录 4 sys.path.append('./') #把读取模块的目录设置为当前目录 5 import tcstory   #导入我的模块 6 NUMBER=-4 7 user_list=[] 8 class People: 9     count=010     def __init__(self,g_name='None',g_telephone='None',g_email='None'):11         self.name=g_name12         self.telephone=g_telephone13         self.email=g_email14         People.count+=115 def menu():16     print("\t\t\t     欢迎来到通讯录")17     print("\t\t\t   n:下一页   b:上一页")18     print('\t\t\tc:修改   s:保存   q:退出')19 def display(choice):20     global NUMBER,user_list21     os.system("clear")22     flag=123     if choice=='n':24         menu()25         NUMBER+=426         for i in range(4):27             try:28                 print('\t\t\t'+str(NUMBER+i)+':'+user_list[NUMBER+i].name,user_list[NUMBER+i].telephone,user_list[NUMBER+i].email)29                 flag=030             except IndexError:31                 if flag:32                     NUMBER-=433                     flag=134                 return35     elif choice=='b':36         menu()

37         if People.count<=4:return38         NUMBER-=439         if NUMBER<0:40             NUMBER=-441             return42         for i in range(4):43             print('\t\t\t'+str(NUMBER+i)+':'+user_list[NUMBER+i].name,user_list[NUMBER+i].telephone,user_list[NUMBER+i].email)44     elif choice=='q':45                 exit()46     elif choice=='c':47         os.system('clear')48         modify()49     elif choice=='s':50         with open('info.txt','w+') as data:51             for each in user_list:52                 data.write(each.name+' ')53                 data.write(each.telephone+' ')54                 data.write(each.email+'\n')   #由于write方法不会自动添加回车键,所以我自己添加55         exit()

56 57     else:58         print("\t\t\t未知的输入")59 def load_info():60     global user_list61     try:62         with open('info.txt','r+') as data:63             for f in data:64                 temp=People()65                 temp.name,temp.telephone,temp.email=f.split(' ')66                 temp.email=temp.email.replace('\n','')  #因为从文件读取的每一行的最后都有一个回车键,所以这里把他去掉:67                 user_list.append(temp)68     except IOError as ioerr:69         print("File error:"+str(ioerr))70         exit()71 def modify():72     os.system('clear')73     global user_list74     print("\t\t\t1.新增   2.修改   3.删除")75     print("\t\t\tq:离开")76     choice=input("\t\t\t请输入您的选择: ")77     if choice=='1':78         tcstory.add(user_list)79     elif choice=='2':80         tcstory.change(user_list)81     elif choice=='3':82         tcstory.delete(user_list)83     else:84         os.system('clear')85 86 def main():87     global user_list88     choice='n'89     load_info()90     while True:91         display(choice)92         choice=input('\n\t\t\t请输入你的选择')93 if __name__=='__main__':main()

以下是需要到的模块  名字为 tcstory.py

1 #!/usr/bin/python3 2 import os,sys 3 os.chdir("./") 4 sys.path.append('./') 5 from address_book import People 6 def add(_list): 7     temp=People() 8     temp.name=input('\t\t\t请输入名字: ') 9     temp.telephone=input('\t\t\t请输入手机号码: ')10     temp.email=input('\t\t\t请输入电子邮件: ')11     _list.append(temp)12 def change(_list):13     name=input('\t\t\t请输入姓名: ')14     for each in _list:15         if name==each.name:16             flag=117         else:flag=018     if flag:19         each.telephone=input('\t\t\t请输入新的手机号码: ')20         each.email=input('\t\t\t请输入新的电子邮箱: ')21         print('\t\t\tDone.')22     else:print('\t\t\t找不到')23 def delete(_list):24     name=input('\t\t\t请输入姓名: ')25     for each in _list:26         if name==each.name:27             flag=128             break29         else:flag=030     if flag:31         _list.remove(each)32         print('\t\t\tDone.')33     else:print("\t\t\t找不到")

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值