热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python学生通讯录管理系统案例(文件版)

目录1.打印输出学生通讯录管理系统的菜单2.接收用户从键盘输入的选择序号3.根据输入的选择序号,判断并执行不同的功能注意:本例中,

目录

1.打印输出学生通讯录管理系统的菜单

2.接收用户从键盘输入的选择序号

3.根据输入的选择序号,判断并执行不同的功能

注意:本例中,要想保存所以学生的通讯信息,需要用到字典。




1.打印输出学生通讯录管理系统的菜单

首先我们先定义一个showMenu()函数,实现打印输出菜单的功能

在实际应用中,学生通讯系统运行时,需要不间断地显示菜单信息。

这时需要将showMenu()函数放到一个循环里:


while True:

        # 打印输出菜单

        showMenu()



2.接收用户从键盘输入的选择序号

这时需要定义的是一种无参数、有返回值的getSelect()函数。


def getSelect():

        selectNum=int(input("请输入选择的序号:"))

        return selectNum


将用户选择的序号传入:


num=getSelect()



3.根据输入的选择序号,判断并执行不同的功能


 if num == 1:
            addstuInof()
        elif num == 2:
            delstuInof()
        elif num == 3:
            modifystuInfo()
        elif num == 4:
            seckstuIofo()
        elif num == 5:
            showstuInfo()
        elif num == 6:
            saveToFile()
        elif num == 7:
            exitSystem()
            break
        else:
            print("你的输入有误,请重新输入··· ···")



注意:本例中,要想保存所以学生的通讯信息,需要用到字典。

所以我们要先定义一个字典,并且不为空,包含两条记录,如下:


dict={

        "二狗":{"性别":"男","电话":"13787007426"},

        "旺财":{"性别":"女","电话":"13497008416"}

        }


下面是完整代码:

# 学生通讯录管理系统主界面
def showMenu():print("=" * 30)print("=======学生通讯录管理系统========")print("1.添加学生")print("2.删除学生")print("3.修改学生")print("4.查询学生")print("5.所有学生")print("6.保存学生")print("7.退出学生")print("=" * 30)# 选择输入的功能
def getSelcet():selectNum = int(input("请输入选择的序号:"))return selectNum# 从文件读取数据
def recoverData():global dictf = open("backup.data",'r',encoding='UTF-8')content = f.read()dict = eval(content)f.close()# 实现序号1:添加学生信息
def addstuInof():name = input("你当前是做添加操作,请输入要添加的名片信息:姓名")sex = input("请输入要添加的名片信息:性别")telphone = input("请输入要添加的名片信息:手机号码")dict[name] = {"性别": sex, "电话": telphone}print(dict)# 实现序号2:删除学生信息def delstuInof():name = input("你当前删除操作,接下来请输入要删除的姓名:")del dict[name]print(dict)# 实现序号3:修改学生信息
def modifystuInfo():name = input("你当前是修改操作,接下来请输入要修改人的姓名:")sex = input("请输入要修改后的信息,性别:")telphone = input("请输入要修改后的信息,手机号码:")dict[name] = {"性别": sex, "电话": telphone}print(dict)# 实现序号4:查询学生信息
def seckstuIofo():name = input("你当前是做查询操作,接下来亲输入要查询的人的姓名:")print(dict[name])# 实现序号5:显示所以显示的通讯信息
def showstuInfo():print("当前的名片有:")for i in dict.items():print(i)# 实现序号6 保存学生信息
def saveToFile():f = open("backup.data", "w", encoding="UTF-8")f.write(str(dict))f.close()# 实现序号7 退出显示管理系统
def exitSystem():print("谢谢你的使用!")# main主函数
def main():recoverData()while True:showMenu()num = getSelcet()if num == 1:addstuInof()elif num == 2:delstuInof()elif num == 3:modifystuInfo()elif num == 4:seckstuIofo()elif num == 5:showstuInfo()elif num == 6:saveToFile()elif num == 7:exitSystem()breakelse:print("你的输入有误,请重新输入··· ···")main()


推荐阅读
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文介绍了Python异常的捕获、传递与抛出操作,并提供了相关的操作示例。通过异常的捕获和传递,可以有效处理程序中的错误情况。同时,还介绍了如何主动抛出异常。通过本文的学习,读者可以掌握Python中异常处理的基本方法和技巧。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
ICE丶Remiges
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有