**Python**综合案例

Python综合案例

一、系统需求分析

1、需求分析

使用面向对象编程思想完成学员管理系统的开发,具体如下:

① 系统要求:学员数据存储在文件中

② 系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息及退出系统等功能。

2、角色分析

在面向对象编程思想中,必须找到要具体实现操作的实体。

通过系统实现添加学员操作

通过系统实现删除学员操作

最终可以得出一个结论:这个通讯管理系统,其主要的实体就是通讯录管理系统本身

注意事项

① 为了方便维护代码,一般一个角色一个程序文件

② 项目要有主程序入口,习惯为main.py

3、创建项目

image-20210319144506905

创建类文件 => studentManager.py

创建项目入口文件 => main.py

image-20210319145119665

二、系统的代码开发

1、学员信息存储代码分析

students = [{}, {}, {}]

学员姓名

学员年龄

学员电话

学员信息(姓名、年龄、电话),可以使用字典来表示。但是我们已经学习了面向对象,其学员信息可以完全用对象来进行实现。

学员(主体) => 属性(姓名、年龄、电话)

2、student.py类文件编写

需求:

学员信息包含:姓名、年龄、电话

添加__str__魔法方法,方便查看学员对象信息

# 定义一个Student类
class Student():# 定义魔术方法,用于初始化属性信息def __init__(self, name, age, mobile):self.name = nameself.age = ageself.mobile = mobile# 定义魔术方法,用于打印输出学员信息def __str__(self):return f'{self.name}, {self.age}, {self.mobile}'

3、编写studentManager.py代码

studentManager.py

class StudentManager(object):# 定义__init__魔术方法,用于初始化操作def __init__(self):# 定义一个列表,将来用于保存所有学员信息self.student_list = []

未来数据的存储格式如下:

self.student_list = [p1, p2, p3, p4, ...]

4、学员管理系统具体功能说明

需求:

存储数据的位置:文件(student.data)

  • 加载文件数据

  • 修改数据后保存到文件

存储数据的形式:列表存储学员对象

系统功能:

① 添加学员信息

② 删除学员信息

③ 修改学员信息

④ 查询学员信息

⑤ 显示所有学员信息

⑥ 保存学员信息

⑦ 退出系统

编写程序代码,用于实现以上的所有功能:

☆ 基础逻辑代码

class StudentManager(object):# 定义一个__init__魔术方法,用于初始化数据def __init__(self):# 初始化一个student_list属性,用于将来保存所有学员对象信息self.student_list = []# 定义load_student()方法def load_student(self):pass# 定义静态show_help()方法@staticmethoddef show_help():print('-' * 40)print(

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

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

相关文章

超时控制:Go语言下的网络请求与时间赛跑

开场白:在互联网的世界里,我们经常要与各种API打交道。有时,这些API可能会因为各种原因而变得“慢条斯理”,这时,超时控制就显得尤为重要了。今天,我们就来聊聊如何在Go语言中实现HTTP请求的超时控制&#…

计算机网络——网络安全

目录 一、基础知识 二、两类密钥体制 三、数字签名实现功能 四、鉴别 五、密钥分配 六、互联网使用的安全协议 6.1网络层安全协议 6.2传输层安全协议 七、系统安全 7.1防火墙 7.2入侵检测系统 一、基础知识 计算机网络的通信方面面临两大类威胁:被动攻击…

模板模式

模板是泛型编程的基础&#xff0c;泛型编程是以一种独立于任何特定类型的方式编写代码。vector <int> 或 vector <string> 模板模式抽象类定义了执行它的方法的方式。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。通用方法在抽象…

python读取eps矢量图片

再利用Image读取时&#xff0c;提示报错&#xff1a; OSError: Unable to locate Ghostscript on paths 解决办法&#xff1a; 首先要安裝ghostscript软件&#xff1a;Ghostscript : Downloads 安装后记住安装路径&#xff0c;并找到bin的文件夹 之后在使用时&#xff0c;在代…

私域流量系统:开启品牌增长的新篇章

随着互联网的普及和发展&#xff0c;流量的获取成本日益提高&#xff0c;如何在竞争激烈的市场中保持品牌的竞争优势&#xff0c;成为企业亟待解决的问题。在这样的背景下私域流量系统应运而生&#xff0c;为企业提供了一个全新的增长引擎。 私域流量系统是一种将品牌自有用户…

java freemarker 动态生成excel文件

好久木有更新啦 抓住2023的小尾巴 浅浅更新一下吧~ 最近做了一个动态生成excel的功能&#xff0c;这里记录下部分功能&#xff0c;主要用到的是freemarker框架&#xff0c;spring就有带&#xff0c;我起的demo载入了一下freemarker的jar包 一、创建模板 首先可以创建一个e…

【Vue】什么是nextTick?

目录 什么是nextTick&#xff1f; 实现原理 使用场景 1、操作更新后的DOM 2、异步更新后的操作 注意事项 总结 什么是nextTick&#xff1f; 简单来说&#xff0c;nextTick方法是在vue.js中常见的一种异步更新DOM的机制。主要是为了解决Vue的异步更新导致的DOM更新后的操…

西部市场的无限潜力与成都的崛起“2024成都电子信息展会”

随着科技的飞速发展&#xff0c;电子信息产业已成为全球经济增长的重要引擎。作为中国西部的重要城市&#xff0c;成都正迅速崛起为电子信息产业的聚集地。2024成都电子信息博览会将于7月份在成都世纪城新国际会展中心隆重召开&#xff0c;此次盛会将汇集来自世界各地的业界精英…

第三方软件测试公司有哪些服务形式?如何收费?

由于软件企业的增多&#xff0c;企业更加注重软件开发&#xff0c;因此会将软件测试工作交由第三方软件测试公司进行。第三方软件测试公司也就是专门做软件测评的外包公司&#xff0c;主要是发现软件漏洞和缺陷以便公正、客观评估软件质量&#xff0c;再出具一份软件测试报告。…

Polars基本操作-1

Polars是一个Python数据处理库&#xff0c;介绍可以看官网&#xff0c;也可以看看 Pandas有了平替Polars-CSDN博客 Polars基本操作 1. Series 和 Dataframe import polars as pl# 创建一个Polars DataFrame data {"A": [1, 2, 3, 4, 5],"B": ["a&…

Vue项目Nginx代理F5刷新出现404问题解决

一.背景 项目用户反馈&#xff0c;F5刷新后&#xff0c;浏览器出现404。最近公司加强网络管理&#xff0c;我记得之前可以刷新&#xff0c;有点怀疑是跟加强网络管理有关。具体原因没有时间去深度跟踪&#xff0c;先百度找到了解决方法&#xff0c;记录一下。 二.解决办法 主…

mac安装k8s环境

安装kubectl brew install kubectl 确认一下安装的版本 kubectl version --client 如果想在本地运行kubernetes 需要安装minikube brew install minikube 需要注意安装minikube需要本地的docker服务是启动的 启动 默认连接的是google的仓库 minikube start 指定阿…

Flink实时电商数仓之DWS层

需求分析 关键词 统计关键词出现的频率 IK分词 进行分词需要引入IK分词器&#xff0c;使用它时需要引入相关的依赖。它能够将搜索的关键字按照日常的使用习惯进行拆分。比如将苹果iphone 手机&#xff0c;拆分为苹果&#xff0c;iphone, 手机。 <dependency><grou…

如何在uniapp中编写云函数

UniApp 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一次代码&#xff0c;可发布到iOS、Android、H5以及各种小程序。如果你想在 UniApp 中操作云数据库&#xff0c;你可能需要使用云开发的功能。 以下是在 UniApp 中操作云数据库的一般步骤&#xff1a; …

编程笔记 html5cssjs 011 HTML页面划分

编程笔记 html5&css&js 011 HTML页面划分 HTML的框架、区块和布局是什么&#xff0c;它们之前的关系是怎样的&#xff1f;框架注意 接下来要看一下网页内的划分。通过框架、区块及布局等方式&#xff0c;将网页从一个长方形整体划分为若干个部分&#xff0c;以合理展示…

MIT线性代数笔记-第31讲-线性变换及对应矩阵

目录 31.线性变换及对应矩阵打赏 31.线性变换及对应矩阵 线性变换相当于是矩阵的抽象表示&#xff0c;每个线性变换都对应着一个矩阵 例&#xff1a; 考虑一个变换 T T T&#xff0c;使得平面上的一个向量投影为平面上的另一个向量&#xff0c;即 T : R 2 → R 2 T:R^2 \to R…

用ChatGPT挑选钻石!著名珠宝商推出-珠宝GPT

根据Salesforce最新发布的第五版《互联网购物报告》显示&#xff0c;ChatGPT等生成式AI的出现、快速发展&#xff0c;对零售行业和购物者产生了较大影响。可有效简化业务流程实现降本增效&#xff0c;并改善购物体验。 著名珠宝商James Allen为了积极拥抱生成式AI全面提升销售…

软件测试/测试开发丨Python闭包函数和计时器学习笔记

闭包函数 闭包的内部函数中&#xff0c;对外部作用域的变量进行引用闭包无法修改外部函数的局部变量闭包可以保存当前的运行环境 # 普通方法实现 def output_student(name, gender, grade1):print(F"新学期开学啦&#xff0c;学生{name}是{gender}&#xff0c;他是{grad…

mysql事务的注意

mysql默认自动提交&#xff0c;开启一个事务的时候也就是 set autocommit 0&#xff1b; 关闭了自动提交&#xff0c; 我们有时候会在执行一个操作的时候&#xff0c;显式的进行锁表操作 比如显式的 写锁表&#xff1a; lock table aaa write &#xff1b; 这个时候 需要…

AI时代下,如何看待“算法利维坦”?

ChatGPT的浪潮从2022年袭来后&#xff0c;至今热度不减&#xff0c;呈现出蓬勃发展的趋势。AI家居、医疗、教育、金融、公益、农业、艺术......AI真的已经走进了生活的方方面面&#xff0c;我们仿佛已经进入了AI时代&#xff0c;势不可挡。人工智能水平如此之高&#xff0c;不禁…