Python 手机通讯录/学生信息管理系统


  1 # 简易手机通讯录
  2 
  3 """
  4 介绍:
  5     1、通讯录是记录联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人们可以在通讯录中通过姓名查看
  6     相关联系人的联系方式:手机号、邮箱、地址等信息,也可以在通讯录中新增联系人、修改联系人、删除联系人信息。
  7 
  8 知识点:
  9     1、字典的使用:创建、添加、修改、删除、遍历
 10     2、循环语句:while、for
 11     3、判断语句:if、elif、else
 12     4、跳转语句:break、continue
 13     4、旗帜使用
 14 
 15 不足(待改善):
 16     1、在查看联系人时,使用了制表符'\t',由于每个联系人的信息都不是相同的字符数,甚至空字符,
 17     所以在遍历打印时没有打印整齐,有待改善。
 18     2、此程序没有太强的可读性,可以添加许多提示语,完善程序,例如:已删除成功、已添加成功等......
 19     3、细心的小伙伴都会注意到,此程序是不断的还行打印,很影响观感,可以尝试改为静态页面,在原基础上刷新。
 20     4、此程序的通讯录是暂时暂时存在字典中的,再次运行程序通讯录是空的,可以尝试长久保存起来。
 21 """
 22 
 23 
 24 # 定义一个字典变量,用于存储好友联系方式
 25 address_list = dict()
 26 
 27 # 定义一个字符串变量
 28 message = '请输入编号:'
 29 
 30 while True:
 31 
 32     # 通讯录界面打印
 33     print('=====欢迎进入通讯录=====')
 34     print('1.添加联系人\t2.查看通讯录')
 35     print('3.删除联系人\t4.修改联系人')
 36     print('5.查找联系人\t0.退出')
 37 
 38     # 选择菜单功能
 39     print(message, end='')
 40     num = input()
 41 
 42     # 添加联系人
 43     if num == '1':
 44         # 输入个人信息
 45         name = input('请输入姓名:')
 46         phone = input('请输入手机号:')
 47         e_mail = input('请输入邮箱:')
 48         addr = input('请输入地址:')
 49 
 50         # 存入字典
 51         address_list[name] = [phone, e_mail, addr]
 52 
 53     # 查看通讯录
 54     elif num == '2':
 55 
 56         flag_output = 0  # 打印联系人旗帜
 57 
 58         # 遍历字典元素
 59         for i in address_list:
 60             print('姓名:{}\t手机号:{}\t邮箱:{}\t地址:{}' .format(i, address_list[i][0], address_list[i][1], address_list[i][2]))
 61             flag_output = 1  # 打印联系人旗帜
 62 
 63             # 判断是否打印通讯录联系人
 64 
 65         if flag_output != 1:  # 等价于flag_output == 0
 66             print('通讯录暂无联系人!')
 67 
 68     # 删除联系人
 69     elif num == '3':
 70         name = input('请输入需要删除的联系人姓名:')
 71         address_list.pop(name)                  # 删除字典元素
 72 
 73     # 修改联系人
 74     elif num == '4':
 75 
 76         flag_alter = 0      # 修改通讯录旗帜
 77 
 78         name = input('请输入需要修改的联系人姓名:')
 79 
 80         # 遍历查找此人
 81         for i in address_list:
 82 
 83             # 判断通讯录是否有此人
 84             if i == name:
 85                 # 重新输入个人信息
 86                 name1 = input('请输入新的姓名:')
 87                 phone1 = input('请输入新的手机号:')
 88                 e_mail1 = input('请输入新的邮箱:')
 89                 addr1 = input('请输入新的地址:')
 90 
 91                 # 判断是否有修改联系人姓名
 92                 if name != name1:
 93                     address_list.pop(name)  # 删除字典元素
 94 
 95                 # 重新存入字典(键相同,直接覆盖原有信息)
 96                 address_list[name1] = [phone1, e_mail1, addr1]
 97                 flag_alter = 1      # 修改通讯录旗帜
 98                 break
 99 
100         # 判断是否修改通讯录联系人
101         if flag_alter == 0:
102             print('此人:{},通讯录不存在!'.format(name))
103 
104     # 查找联系人
105     elif num == '5':
106 
107         flag_output = 0     # 打印联系人旗帜
108 
109         name = input('请输入需要查找的联系人姓名:')
110 
111         # 遍历查找此人
112         for i in address_list:
113             if i == name:
114                 print('姓名:{}\t手机号:{}\t邮箱:{}\t地址:{}' .format(name, address_list[name][0], address_list[name][1], address_list[name][2]))
115                 flag_output = 1     # 打印联系人旗帜
116                 break
117 
118         # 判断是否打印通讯录联系人
119         if flag_output != 1:        # 等价于flag_output == 0
120             print('此人:{},通讯录不存在!'.format(name))
121 
122     # 退出
123     elif num == '0':
124         print(' =====已退出通讯录=====')
125         break
126 
127     # 其他
128     else:
129         print('输入有误!!!')
130         message = '请重新输入编号:'
131         continue
132 
133     message = '请输入编号:'

运行结果: