最近自学了python,想到之前学c++的通讯录课程设计,就试着用来检验python的学习成果。

import os
file_name='contact.txt'
def menu():print("=====================欢迎使用通讯簿=====================")print("*********************菜单*****************************")print("*                    1.新建联系人                     *")print("*                    2.查找联系人                     *")print("*                    3.删除联系人                     *")print("*                    4.修改联系人                     *")print("*                    5.显示联系人信息                  *")print("*                    0.退出                          *")print("=====================================================")
def main():while True:menu()choice=int(input("请输入0-5选择"))if choice in [0,1,2,3,4,5]:if choice==0:print("谢谢使用")breakelif choice==1:insert()elif choice==2:search()elif choice==3:delete()elif choice==4:modify()elif choice==5:display()
def insert():contact_list=[]while True:number=input("请输入联系人手机号:")if not number:breakname=input("请输入联系人姓名:")if not name:breaktry:sex=input("请输入联系人性别:")address=input("请输入联系人籍贯:")qq=input("请输入联系人qq号:")except:print("输入错误,请重新输入")continuecontact={'number':number,'name':name,'sex':sex,'address':address,'qq':qq}contact_list.append(contact)answer=input('是否继续添加?y/n\n')if answer=='y':continueelse:breaksave(contact_list)print("联系人输入完毕!")
def save(list):try:cont_txt=open(file_name,'a',encoding='utf-8')except:cont_txt=open(file_name,'w',encoding='utf-8')for item in list:cont_txt.write(str(item)+'\n')cont_txt.close()
def search():contact_query = []while True:number = ''name = ''if os.path.exists(file_name):mode = input("按手机号查找请输入1,按姓名查找请输入2:")if mode == '1':number = input("请输入手机号:")elif mode == '2':name = input("请输入姓名:")else:print("===========输入错误,请重新输入==========")search()with open(file_name, 'r', encoding='utf-8') as rfile:contact = rfile.readlines()for item in contact:d = dict(eval(item))if number != '':if d['number'] == number:contact_query.append(d)elif name != '':if d['name'] == name:contact_query.append(d)display_contact(contact_query)contact_query.clear()answer = input('是否继续查询y/n\n')if answer == 'y':continueelse:breakelse:print("暂未保存联系人信息")return
def display_contact(list):if len(list)==0:print("没有查询到联系人信息,无数据显示!!")returnformat_title='{:^6}\t{:^12}\t{:^8}\t{:^10}'print(format_title.format('手机号','姓名','性别','籍贯','qq'))format_data='{:^6}\t{:^12}\t{:^8}\t{:^10}'for item in list:print(format_data.format(item.get('number'),item.get('name'),item.get('sex'),item.get('address'),item.get('qq')))
def delete():while True:contact_number = input(("请输入删除联系人的手机号"))if contact_number != ' ':if os.path.exists(file_name):with open(file_name, 'r', encoding='utf-8')as file:contact_old = file.readlines()else:contact_old = []flag = Falseif contact_old:with open(file_name, 'w', encoding='utf-8')as wfile:d = {}for item in contact_old:d = dict(eval(item))if d['number'] != contact_number:wfile.write(str(d) + '\n')else:flag = Trueif flag:print(f'number为{contact_number}的联系人已被删除')else:print(f'没有找到number为{contact_number}的联系人')else:print('无联系人信息')breakdisplay()answer = input('是否继续删除?y/n\n')if answer == 'y':continueelse:break
def modify():display()if os.path.exists(file_name):with open(file_name,'r',encoding='utf-8') as rfile:contact_old=rfile.readlines()else:returncontact_number=input("请输入要修改的联系人手机号:")with open(file_name,'w',encoding='utf-8')as wfile:for item in contact_old:d=dict(eval(item))if d['number']==contact_number:print("找到该联系人")while True:try:d['name']=input("请输入姓名:")d['sex']=input("请输入性别:")d['address']=input("请输入籍贯:")d['qq']=input("请输入qq:")except:print("您的输入有误,请重新输入!")else:breakwfile.write(str(d)+'\n')print("修改成功!")else:wfile.write(str(d)+'\n')answer=input('是否继续修改其他联系人信息y/n\n')if answer=='y':modify()
def display():contact_list=[]if os.path.exists(file_name):with open(file_name,'r',encoding='utf-8') as rfile:contacts=rfile.readlines()for item in contacts:contact_list.append(eval(item))if contact_list:display_contact(contact_list)else:print('暂未保存过数据!!!')
main()

生成exe:
cmd:
先安装 输入pip install PyInstaller
再输入
pyinstaller -F D:\pthon\Pythonxuexi\main.py

大概就是这样,接下来再学吧~

python通讯录课程设计相关推荐

  1. python 通讯录课程设计_如何用Python设计一个通讯录类?

    直接上代码:一共三个文件 CommunicateClass.py # @File : CommunicateClass.py class Communicate(): ""&quo ...

  2. Python数据处理课程设计-房屋价格预测

    注:可能有些图片未能成功上传,可在文档处进行下载 链接:Python数据处理课程设计-房屋价格预测-机器学习文档类资源-CSDN下载 课程设计报告 课程名称 Python数据处理课程设计 项目名称 房 ...

  3. 关于python爬虫课程设计

    文章目录 题目简介 目标定义 .流程图 4.实现/5.分析 全部代码 python爬虫课程设计 背单词吧 题目简介 大学四年中,必不可少的证就是英语四六级证书,我们的项目可以通过pycharm来对我们 ...

  4. python 计算机网络课程设计(网络主机扫描程序)

    我们的运行环境是pycharm 目录 背景 随着网络技术的发展,越来越多的计算机接入互联网上,网络安全逐渐成 为一个潜在的巨大问题,如何保障自身的网络安全,其中一个主要的方法就是 自查自纠,而在这个过 ...

  5. Python语言课程设计名片管理系统

    目标:搭建名片管理系统 框架结构 通过本项目的学习,学员可以了解项目开发的流程,掌握项目需求分析.设计与功能的代码实现.提高同学们独立分析需求与功能实现的能力. 项目知识点:变量.流程控制.函数.模块 ...

  6. java通讯录课程设计_java课程设计_通讯录_通讯簿.doc

    java课程设计_通讯录_通讯簿.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: impor ...

  7. python人工智能课程设计_中小学课程设计:以计算思维培养为核心的人工智能课程设计与实践...

    面对国际日趋紧张的科技竞争,发展新一代人工智能已成为各国的重要国家战略.人工智能人才的梯队建设是我国发展人工智能技术和推动产业应用的重要基础. 01存在问题 近年来教育部和各省市教育主管部门发布了一系 ...

  8. Python期末课程设计

    python课程设计,主要用xpath,和mongodb存取数据 词道云创新功能,不知道的自己百度 下为部分代码 import requests # mongodb import pymongo im ...

  9. python程序设计课程设计二级减速器_机械工程专业的本科生应该自学哪些知识?...

    本人机械工程师,偏设计方向,硕士学历,有9年机械工程经验,曾担任某央企项目负责人,算不上大牛. 虽然离题目提出时间已经很遥远了,但看了这个题目和许多回答真的感慨很多,加上一些知友最近私信问我类似的问题 ...

  10. python操作系统课程设计_操作系统课程设计.pdf

    计算机科学与通信工程学院 操作系统课程设计报告 题目:linux系统下实现PV 操作 班级: 软件工程1401 姓名: 吴帅帅 学号: 3140608020 指导老师: 牛德姣 2016 年12 月2 ...

最新文章

  1. 2019 年,Hadoop 还是数据处理的可选方案吗?
  2. Redis的字典扩容与ConcurrentHashMap的扩容策略比较
  3. 大数据时代,如何构建精准用户画像,直击精细化运营
  4. max点缓存烘焙帧_深入理解浏览器的缓存机制
  5. 006 CSS三种引入方式
  6. boost::mp11::mp_map_keys相关用法的测试程序
  7. 复盘线上的一次OOM和性能优化!
  8. SpringBoot | 第六章:常用注解介绍及简单使用
  9. RTT 使用menuconfig 和cubeMux 在移植过来的模板工程上增加一个串口2
  10. 一天一个小技巧(5)——CSDN编译器的图片位置、大小调节
  11. 收集 - 实际开发中的技巧记录【页面】
  12. 报名 | 上道沙龙:科技如何赋能传统金融?
  13. 【Log4cpp】项目日志Log4cpp的简单使用
  14. hikey970学习-003:DDK用户手册学习《Huawei HiAI DDK User Manual 》(1)
  15. 跳频技术——学习总结(一)
  16. 吴伯凡-认知方法论-T字形认知
  17. 清华社英语在线自动教程python版
  18. 神奇的零知识证明,既能保守秘密,又能让别人信你!
  19. 冬季下肢静脉曲张如何治疗
  20. addon@Node.js之新手上路

热门文章

  1. 关于STM8S003F3P6TR
  2. cannot import name 'NPCAP_PATH'
  3. usb抓包工具 安卓_USB抓包工具(Bus Hound)下载 v6.0.1 官方版
  4. 百度网盘破解限速(免费)
  5. c语言 从文件中读取车牌,输入一个车牌号写入文件,找出所有后四位是一个完全平方数的车牌号并输出
  6. matlab DSP6678,TMS320C6678开发例程使用手册(8)
  7. windows server2016忘记密码,windows重置密码,windows破解密码,win10忘记密码,win10破解密码,windows server2016破解密码
  8. IOS开发之宏的深度学习
  9. 小型矢量图标于前端页面如何应用
  10. Flutter SqlLite数据库快速入门