Python---练习:使用Python函数编写通讯录系统

news2025/2/22 18:29:58

预览通讯录系统最终效果

首先,进行需求分析,整个系统功能,分为6个板块,功能如下:

① 添加学员信息

② 删除学员信息

③ 修改学员信息

④ 查询学员信息

⑤ 遍历所有学员信息

⑥ 退出系统

系统共6个功能,用户根据自己需求选取

其次,根据每个部分功能,进行一步步实现。

① 显示功能界面------让用户知道这个是干嘛用的。

② 用户输入功能序号-----1  2   3   4  5  6 

③ 根据用户输入的功能序号,执行不同的功能(函数)----也就是增删改查。

☆ 定义函数------涉及各个不同功能的定义,内部功能怎么实现。

☆ 调用函数------涉及各个不同功能的调用,内部功能是否实现

注意:

模块化的编程思想是最早期的编程思想,强调把一个系统分解为若干个功能每个功能就是一个模块(函数)。当所有功能开发完毕后,则系统就完成了。

开始写代码:

① 显示功能界面-----print输入显示的内容。

② 提示用户输入要操作的功能编号--------input让用户输入编号。

③ 根据用户输入的序号执行相关功能 --------- if...elif...else

④ 如何让程序一直执行下去,而不是选择某个功能后,程序就退出了 -------while True

⑤ 根据用户输入的序号,完成系统中的每一个功能

所有功能都有使用前提:必须共享一套数据 -------info = [{}, {}, {}]

☆ 学员信息添加功能--------(add_student())


显示功能界面

先 定义函数`print_info`负责显示系统功能。

相关链接Python---函数的作用,定义,使用步骤(调用步骤)-CSDN博客

def print_info():
    print('-' * 20)
    print('欢迎登录学员管理系统')
    print('1: 添加学员信息')
    print('2: 删除学员信息')
    print('3: 修改学员信息')
    print('4: 查询学员信息')
    print('5: 遍历输出所有学员信息')
    print('6: 退出系统')
    print('-' * 20)


print_info()

写完先打印看看效果

继续

用户输入序号,选择功能---------使用input获取用户输入序号---要加int变整型:

相关链接Python数据类型转换-CSDN博客

Python中的标准输入-----input()-CSDN博客

user_num = int(input('请选择您需要的功能序号:'))

根据用户选择,执行不同的功能----------使用if判断用户要实现的功能

相关链接 Python---if选择判断结构、嵌套结构(if elif else)_python多重if嵌套-CSDN博客

if user_num == 1:
    print('添加学员信息')
elif user_num == 2:
    print('删除学员信息')
elif user_num == 3:
    print('修改学员信息')
elif user_num == 4:
    print('查询学员信息')
elif user_num == 5:
    print('查询学员信息')
elif user_num == 6:
    print('退出系统')
else:
    print('信息输入错误')

循环输出功能菜单,直至用户手工退出

① 用户选择系统功能的代码需要循环使用,直到用户主动退出系统。

② 如果用户输入1-6以外的数字,需要提示用户。

相关链接Python---死循环概念---while True-CSDN博客

Python---if选择判断结构、嵌套结构(if elif else)_python多重if嵌套-CSDN博客


while True:
    print_info()

    user_num = int(input('请输入您要执行的功能序号:'))

    if user_num == 1:
        print('添加学员信息')
    elif user_num == 2:
        print('删除学员信息')
    elif user_num == 3:
        print('修改学员信息')
    elif user_num == 4:
        print('查询学员信息')
    elif user_num == 5:
        print('查询学员信息')
    elif user_num == 6:
        print('退出系统')
    else:
        print('信息输入错误')

☆ 定义全局列表,保存学员信息

所有功能函数都是操作学员信息,所有存储所有学员信息应该是一个全局变量,数据类型为列表。

相关链接    Python--列表及其应用场景---增、删、改、查。-CSDN博客

info = []

后续列表结构如下:

info = [{'name':'Tom', 'age':18, 'mobile':'13578664321'}, {'name':'Mary', 'age':18, 'mobile':'19920187732'}, {'name':'Jennifier', 'age':18, 'mobile':'18862357791'}]

添加学员信息代码实现

需求分析: 接收用户输入学员信息,并保存 判断是否添加学员信息 如果学员姓名已经存在,则报错提示 如果学员姓名不存在,则准备空字典,将用户输入的数据追加到字典 将用户字典数据追加到全局学员信息列表,最后,if条件成立的位置调用该函数

相关链接Python---函数的作用,定义,使用步骤(调用步骤)-CSDN博客

Python中的标准输入-----input()-CSDN博客

Python---global关键字---设置全局变量-CSDN博客

Python-----for循环基本语法及其应用---对序列进行遍历循环--内部会自动更新计数器(类似while循环里面的 i += 1)-CSDN博客

Python--列表及其应用场景---增、删、改、查。-CSDN博客

Python---字典的增、删、改、查操作-CSDN博客

add_info函数代码实现

def add_info():
    """ 添加学员信息 """
    name = input('请输入学员姓名:')
    age = input('请输入学员年龄:')
    mobile = input('请输入学员电话:')

    global info

    for i in info:
        if name == i['name']:
            print('该用户已经存在!')
            return

    info_dict = {}
    info_dict['name'] = name
    info_dict['age'] = age
    info_dict['mobile'] = mobile

    info.append(info_dict)

    print(info)

删除学员信息代码实现

需求分析按用户输入的学员姓名进行删除
用户输入目标学员姓名
检查这个学员是否存在
如果存在,则列表删除这个数据
如果不存在,则提示“该用户不存在”
对应的if条件成立的位置调用该函数

python---for循环结构中的else结构(是同级关系)-CSDN博客相关链接   python---for循环结构中的else结构(是同级关系)-CSDN博客

Python--列表及其应用场景---增、删、改、查。-CSDN博客

del_info函数代码实现

# 删除学员
def del_info():
    """删除学员"""
    # 1. 用户输入要删除的学员的姓名
    del_name = input('请输入要删除的学员的姓名:')

    global info
    # 2. 判断学员是否存在:如果输入的姓名存在则删除,否则报错提示
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
    else:
        print('该学员不存在')

    print(info)

修改学员信息代码实现

需求分析
用户输入目标学员姓名
检查这个学员是否存在  
如果存在,则修改这位学员的信息,例如手机号
如果不存在,则报错
对应的if条件成立的位置调用该函数

Python--列表及其应用场景---增、删、改、查。-CSDN博客相关链接  Python--列表及其应用场景---增、删、改、查。-CSDN博客

python---for循环结构中的else结构(是同级关系)-CSDN博客

modify_info函数代码实现

# 修改函数
def modify_info():
    """修改函数"""
    # 1. 用户输入要修改的学员的姓名
    modify_name = input('请输入要修改的学员的姓名:')

    global info
    # 2. 判断学员是否存在:如果输入的姓名存在则修改手机号,否则报错提示
    for i in info:
        if modify_name == i['name']:
            i['mobile'] = input('请输入新的手机号:')
            break
    else:
        print('该学员不存在')

    print(info)

查询学员信息代码实现

需求分析
用户输入目标学员姓名
检查学员是否存在
如果存在,则显示这个学员的信息
如果不存在,则报错提示
对应的if条件成立的位置调用该函数

相关链接  python---for循环结构中的else结构(是同级关系)-CSDN博客

Python---global关键字---设置全局变量-CSDN博客

search_info函数代码实现

# 查询学员
def search_info():
    """查询学员"""
    # 1. 输入要查找的学员姓名:
    search_name = input('请输入要查找的学员姓名:')

    global info
    # 2. 判断学员是否存在:如果输入的姓名存在则显示这位学员信息,否则报错提示
    for i in info:
        if search_name == i['name']:
            print('查找到的学员信息如下:----------')
            print(f"该学员的学号是{i['id']}, 姓名是{i['name']}, 手机号是{i['mobile']}")
            break
    else:
        print('该学员不存在')

打印所有学员信息(print_all()函数代码实现)

# 显示所有学员信息
def print_all():
    """ 显示所有学员信息 """
    global info

    for i in info:
        print(f"姓名:{i['name']},年龄:{i['age']},电话:{i['mobile']}")

退出学员管理系统

相关链接 

Python--循环中的两大关键词 break 与 continue-CSDN博客

Python----break关键字对while...else结构的影响-CSDN博客

Python---break关键字对for...else结构的影响-CSDN博客

elif user_num == 6:
    flag = input('确认退出么? 确认请输入【yes】:')
    if flag == 'yes':
        break

所有都按照功能分为一个个不同板块,在每个版块内,结合以往掌握知识点,一步步写出来即可。

整体代码:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1255699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE进阶学习:读取和存储对象

到了学习 JavaEE 这块要有一个思想,实现一个功能的时候,先考虑下有没有实现对应功能的注解. 在 Spring 中想要更简单的存储和读取对象的核心是使用注解,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象 1.存储 Bean 对象 之前我们…

跟着chatgpt一起学|1.spark入门之MLLib

chatgpt在这一章表现的不好,所以我主要用它来帮我翻译文章提炼信息 1.前言 首先找到spark官网里关于MLLib的链接 spark内一共有2种支持机器学习的包, 一种是spark.ml,基于DataFrame的,也是目前主流的 另一种则是spark.mllib,是基于RDD的…

MATLAB 和 Simulink 官方文档下载地址

MATLAB 官方文档中文版下载网址: https://ww2.mathworks.cn/help/pdf_doc/matlab/index.html 如图: MATLAB 官方文档英文版下载网址: https://ww2.mathworks.cn/help/pdf_doc/matlab/index.html?langen 如图: Simulink 官…

02、Tensorflow实现手写数字识别(数字0-9)

02、Tensorflow实现手写数字识别(数字0-9) 开始学习机器学习啦,已经把吴恩达的课全部刷完了,现在开始熟悉一下复现代码。对这个手写数字实部比较感兴趣,作为入门的素材非常合适。 基于Tensorflow 2.10.0与pycharm 1…

WebSocket协议测试实战

当涉及到WebSocket协议测试时,有几个关键方面需要考虑。在本文中,我们将探讨如何使用Python编写WebSocket测试,并使用一些常见的工具和库来简化测试过程。 1、什么是WebSocket协议? WebSocket是一种在客户端和服务器之间提供双向…

基于OPC UA 的运动控制读书笔记(1)

最近一段时间集中研究OPCUA 在机器人控制应用中应用的可能性。这个话题自然离不开运动控制。 笔者对运动控制不是十分了解。于是恶补EtherCAT 驱动,PLCopen 运动控制的知识,下面是自己的读书笔记和实现OPCUA /IEC61499 运动控制器的实现方案设想。 PLCo…

【Spring整合Junit】Spring整合Junit介绍

本文内容基于【Spring整合MyBatis】Spring整合MyBatis的具体方法进行测试 文章目录 1. 导入相关坐标2. 使用Junit测试所需注解3. 在测试类中写相关内容 1. 导入相关坐标 在pom.xml中导入相关坐标&#xff1a; <dependency><groupId>junit</groupId><ar…

CSS常用笔记

1. 脱离文档流&#xff0c;用于微调 {position: relative; top: 10px; right: 0; } 2. flex布局大法 <div class"demo"><div class"demo-1"></div><div class"demo-2"></div><div class"demo-3"&…

Linux面试题(二)

目录 17、怎么使一个命令在后台运行? 18、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息&#xff1f; 19、哪个命令专门用来查看后台任务? 20、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令? 21、终止进程用什么命令…

【计网 面向连接的传输TCP】 中科大笔记 (十 二)

目录 0 引言1 TCP 的特性1.1 拓展&#xff1a;全双工、单工、半双工通信 2 TCP报文段结构3 TCP如何实现RDT4 TCP 流量控制4.1 题外话&#xff1a;算法感悟 5 TCP连接3次握手、断开连接4次握手5.1 连接5.2 断开连接 6 拥塞控制6.1 拥塞控制原理6.2 TCP拥塞控制 &#x1f64b;‍♂…

shell脚本 ( 函数 数组 冒泡排序)

目录 什么是函数 使用函数的方法 格式 注意事项 函数的使用 函数可以直接使用 函数变量的作用范围 函数返回值 查看函数 删除函数 函数的传递参数 使用函数文件 ​编辑 拓展递归函数 例&#xff1a;求5的阶乘 什么是数组 使用数组的方法 1.先声明 2.定义数组 3…

Python---函数的数据---拆包的应用案例(两个变量值互换,*args, **kwargs调用时传递参数用法)

案例&#xff1a; 使用至少3种方式交换两个变量的值 第一种方式&#xff1a;引入一个临时变量 c1 10 c2 2# 引入临时变量temp temp c2 c2 c1 c1 tempprint(c1, c2) 第二种方式&#xff1a;使用加法与减法运算交换两个变量的值&#xff08;不需要引入临时变量&#xff09…

ArcGIS制作广场游客聚集状态及密度图

文章目录 一、加载实验数据二、平均最近邻法介绍1. 平均最近邻工具2. 广场游客聚集状态3. 结果分析三、游客密度制图一、加载实验数据 二、平均最近邻法介绍 1. 平均最近邻工具 “平均最近邻”工具将返回五个值:“平均观测距离”、“预期平均距离”、“最近邻指数”、z 得分和…

C++学习之路(五)C++ 实现简单的文件管理系统命令行应用 - 示例代码拆分讲解

简单的文件管理系统示例介绍: 这个文件管理系统示例是一个简单的命令行程序&#xff0c;允许用户进行文件的创建、读取、追加内容和删除操作。这个示例涉及了一些基本的文件操作和用户交互。 功能概述&#xff1a; 创建文件 (createFile())&#xff1a; 用户可以输入文件名和内…

计算机系统的层次结构与性能指标

目录 一. 计算机系统的层次结构二. 计算机性能指标2.1. 存储器的性能指标2.2 CPU的性能指标2.3 系统整体的性能指标2.4 系统整体的性能指标(动态测试) \quad 一. 计算机系统的层次结构 \quad \quad 虚拟机器的意思是看起来像是机器直接就能执行程序员所写的代码, 其实是需要通过…

Java王者荣耀

一、创建项目 二、代码 package com.sxt;import javax.swing.*; import java.awt.*;public class Background extends GameObject {public Background(GameFrame gameFrame) {super(gameFrame);// TODO Auto-generated constructor stub}Image bg Toolkit.getDefaultToolkit(…

基于helm的方式在k8s集群中部署gitlab - 备份恢复(二)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署&#xff08;一&#xff09;&#xff0c;本篇重点介绍在k8s集群中备份gitlab的数据&#xff0c;并在虚拟机上部署相同版本的gitlab&#xff0c;然后将备份的数据进行还原恢复 文章目录 1. 备份2. 恢复到虚拟机上的gitlab2.…

java学习part13Object类和常用方法

1.Object 2.常用方法 2.1clone() clone()就是深拷贝&#xff0c;创建一个同内容新对象。需要实现接口 2.2finalize()已废弃 类似于析构函数&#xff0c;在GC回收之前调用。 System.gc()强制调用gc&#xff0c;然后就能看到finalize()的输出 2.3equals() 对于引用类型可用。…

帮管客CRM SQL注入漏洞复现

0x01 产品简介 帮管客CRM是一款集客户档案、销售记录、业务往来等功能于一体的客户管理系统。帮管客CRM客户管理系统&#xff0c;客户管理&#xff0c;从未如此简单&#xff0c;一个平台满足企业全方位的销售跟进、智能化服务管理、高效的沟通协同、图表化数据分析帮管客颠覆传…

Linux(8):BASH

硬件、核心与 Shell 操作系统其实是一组软件&#xff0c;由于这组软件在控制整个硬件与管理系统的活动监测&#xff0c;如果这组软件能被用户随意的操作&#xff0c;若使用者应用不当&#xff0c;将会使得整个系统崩溃。因为操作系统管理的就是整个硬件功能。 应用程序在最外层…