• 视频、源码、课件、软件、笔记:超全面Python基础入门教程【十天课程】博客笔记汇总表【黑马程序员】
  • Python基础day05【函数(函数传参的两种形式、函数形参)、拆包、引用、可变与不可变类型、引用做函数参数注意点】

  • Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

目录

7.函数应用:学生管理系统

分析

搭建业务框架

添加学生信息

添加学生优化

删除 / 修改 / 查询 学生信息

简易学生管理系统代码

代码1

代码2

8.拆包补充

今日总结


7.函数应用:学生管理系统

分析

增删改查操作

存储学生信息:
    姓名
    年龄
    班级
    性别
    ...
    {'name': 'isaac', 'age': 18, ...}

存储所有的学生信息:
    列表: [{}, {}, {}, ...]

功能菜单、业务框架。

搭建业务框架

def show_menu():print('1. 添加学生')print('2. 删除学生')print('3. 修改学生信息')print('4. 查询单个学生信息')print('5. 查询所有的学生信息')print('6. 退出系统')while True:show_menu()opt = input('请输入用来选择的操作编号:')if opt == '1':print('1. 添加学生')elif opt == '2':print('2. 删除学生')elif opt == '3':print('3. 修改学生信息')elif opt == '4':print('4. 查询单个学生信息')elif opt == '5':print('5. 查询所有的学生信息')elif opt == '6':print('欢迎下次使用本系统...')breakelse:print('输入有误,请再次输入!')continueinput('......回车键继续操作......')

添加学生信息

  1. 通过 input 函数获取学生的信息,姓名、年龄、性别
  2. 将学生信息转换为字典进行保存
  3. 将这个学生字典添加的列表中

添加学生优化

代码优化:
    假设学生的名字都不能重复,在添加学生的时候,进行判断。如果学生名字已经存在,则不添加!

删除 / 修改 / 查询 学生信息

都使用 name 对学生进行判断

  1. 使用 input 获取要删除 / 修改 / 查询的学生姓名
  2. 判断学生信息是否存在
  3. 学生存在,对学生进行 删除 / 修改 / 查询 操作
  4. 学生信息不存在,直接结束

简易学生管理系统代码

代码1

    

stu_list = []  # 定义学生列表,保存所有的学生信息def show_menu():print('1. 添加学生')print('2. 删除学生')print('3. 修改学生信息')print('4. 查询单个学生信息')print('5. 查询所有的学生信息')print('6. 退出系统')def insert_student():# 1. 通过 input 函数获取学生的信息, 姓名, 年龄, 性别name = input('请输入学生名字:')# [{}, {}, {}]  判断的是字典中的value是否存在for stu in stu_list:if stu['name'] == name:print('----------学生信息存在----------')return  # 结束函数的执行age = input('请输入学生年龄:')gender = input('请输入学生性别:')# 2. 将学生信息转换为字典进行保存stu_dict = {'name': name, 'age': int(age), 'gender': gender}# 3. 将这个学生字典添加的列表中stu_list.append(stu_dict)print('==============学生信息添加成功==============')def remove_student():# 1. 使用 input 获取要删除/修改/查询的学生姓名name = input('请输入要操作的学生的名字:')# 2. 判断学生信息是否存在for stu in stu_list:if stu['name'] == name:# 3. 学生存在,对学生进行删除/修改/查询操作stu_list.remove(stu)# returnbreak# 4. 学生信息不存在,直接结束else:print('***********该学生信息不存在,无法删除***********')def modify_student():# 1. 使用 input 获取要删除/修改/查询的学生姓名name = input('请输入要操作的学生的名字:')# 2. 判断学生信息是否存在for stu in stu_list:if stu['name'] == name:# 3. 学生存在,对学生进行删除/修改/查询操作stu['age'] = int(input('请输入新的年龄:'))# returnbreak# 4. 学生信息不存在,直接结束else:print('***********该学生信息不存在,无法修改***********')def search_student():# 1. 使用 input 获取要删除/修改/查询的学生姓名name = input('请输入要操作的学生的名字:')# 2. 判断学生信息是否存在for stu in stu_list:if stu['name'] == name:# 3. 学生存在,对学生进行删除/修改/查询操作print(f'姓名:{stu["name"]}, 年龄:{stu["age"]}, 性别:{stu["gender"]}')# returnbreak# 4. 学生信息不存在,直接结束else:print('***********该学生信息不存在***********')def show_all_info():if len(stu_list) > 0:for stu in stu_list:print(f'姓名:{stu["name"]}、年龄:{stu["age"]}、性别:{stu["gender"]}')# print(stu)else:print('目前没有学生信息')def main():while True:show_menu()opt = input('请输入用来选择的操作编号:')if opt == '1':# print('1. 添加学生')insert_student()elif opt == '2':# print('2. 删除学生')remove_student()elif opt == '3':# print('3. 修改学生信息')modify_student()elif opt == '4':# print('4. 查询单个学生信息')search_student()elif opt == '5':# print('5. 查询所有的学生信息')show_all_info()elif opt == '6':print('欢迎下次使用本系统......')breakelse:print('输入有误,请再次输入')continueinput('...... 回车键继续操作.......')main()

代码2

import time
import os# 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
info_list = []def print_menu():print("---------------------------")print("      学生管理系统 V1.0")print(" 1:添加学生")print(" 2:删除学生")print(" 3:修改学生")print(" 4:查询学生")print(" 5:显示所有学生")print(" 6:退出系统")print("---------------------------")def add_new_info():"""添加学生信息"""global info_listnew_name = input("请输入姓名:")new_tel = input("请输入手机号:")new_qq = input("请输入QQ:")for temp_info in info_list:if temp_info['name'] == new_name:print("此用户名已经被占用,请重新输入")return  # 如果一个函数只有return就相当于让函数结束,没有返回值# 定义一个字典,用来存储用户的学生信息(这是一个字典)info = {}# 向字典中添加数据info["name"] = new_nameinfo["tel"] = new_telinfo["qq"] = new_qq# 向列表中添加这个字典info_list.append(info)def del_info():"""删除学生信息"""global info_listdel_num = int(input("请输入要删除的序号:"))if 0 <= del_num < len(info_list):del_flag = input("你确定要删除么?yes or no")if del_flag == "yes":del info_list[del_num]else:print("输入序号有误,请重新输入")def modify_info():"""修改学生信息"""global info_listmodify_num = int(input("请输入要修改的序号:"))if 0 <= modify_num < len(info_list):print("你要修改的信息是:")print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num]['name'],info_list[modify_num]['tel'], info_list[modify_num]['qq']))info_list[modify_num]['name'] = input("请输入新的姓名:")info_list[modify_num]['tel'] = input("请输入新的手机号:")info_list[modify_num]['qq'] = input("请输入新QQ:")else:print("输入序号有误,请重新输入")def search_info():"""查询学生信息"""search_name = input("请输入要查询的学生姓名:")for temp_info in info_list:if temp_info['name'] == search_name:print("查询到的信息如下:")print("name:%s, tel:%s, QQ:%s" % (temp_info['name'], temp_info['tel'], temp_info['qq']))breakelse:print("没有您要找的信息....")def print_all_info():"""遍历学生信息"""print("序号\t姓名\t\t手机号\t\tQQ")i = 0for temp in info_list:# temp是一个字典print("%d\t%s\t\t%s\t\t%s" % (i, temp['name'], temp['tel'], temp['qq']))i += 1def main():"""用来控制整个流程"""while True:# 1. 打印功能print_menu()# 2. 获取用户的选择num = input("请输入要进行的操作(数字)")# 3. 根据用户选择,做相应的事情if num == "1":# 添加学生add_new_info()elif num == "2":# 删除学生del_info()elif num == "3":# 修改学生modify_info()elif num == "4":# 查询学生search_info()elif num == "5":# 遍历所有的信息print_all_info()elif num == "6":# 退出系统exit_flag = input("亲,你确定要退出么?~~~~(>_<)~~~~(yes or no) ")if exit_flag == "yes":breakelse:print("输入有误,请重新输入......")input("\n\n\n按回车键继续....")os.system("clear")  # 调用Linux命令clear完成清屏# 程序的开始
main()

8.拆包补充

def func(*args, **kwargs):print('args', args)print('kwargs', kwargs)num = 0# for i in args:#     num += i  # num = num + i## for j in kwargs.values():#     num += j## print(f"求和的结果为{num}")my_list = [1, 2, 3, 4, 5, 6]
my_dict = {'a': 7, 'b': 8, 'c': 9, 'd': 10}func(my_list)  # 将列表作为一个数据进行传递
func(*my_list)  # 将列表中的每一个数据作为位置参数进行传递, 拆包
func(my_dict)  # 将my_dict 作为一个位置实参进行传递
func(*my_dict)  # 将my_dict中的key 作为位置实参进行传递
func(**my_dict)  # 将my_dict中键值对作为关键字实参进行传递

今日总结

Python基础day05【函数应用:学生管理系统、拆包、今日总结】相关推荐

  1. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  2. Python基础day05 作业解析【10道 函数作业题】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[函数(定义与调用.文档说明.传参函数.全局变量.返回值.嵌套调用)] ...

  3. python基础项目实践之: 学生通讯录管理系统

    Python课堂基础实践系列: Python基础项目实践之:学生信息管理系统 python基础项目实践之: 学生通讯录管理系统 Python基础项目实践之:面向对象方法模拟简单计算器 Python基础 ...

  4. Python基础-16 函数高级(续)

    文章目录 十六.函数高级(续) 8. 函数返回多个值 9. 函数嵌套调用及过程 - 函数嵌套 - nonlocal 关键字 10. 递归函数的调用及过程(了解) 1. 系统编程相关 - pass - ...

  5. python的用途实例-Python基础之函数原理与应用实例详解

    本文实例讲述了Python基础之函数原理与应用.分享给大家供大家参考,具体如下: 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体 ...

  6. Python基础之函数

    详情请戳 python基础之函数介绍及使用 python基础之内置函数 python基础之迭代器和生成器 python基础之装饰器 转载于:https://www.cnblogs.com/zhangl ...

  7. Python数据结构与算法(1.5)——Python基础之函数与异常

    Python数据结构与算法(1.5)--Python基础之函数与异常 0. 学习目标 1. 函数 1.1 自定义函数 1.2 函数与参数 1.3 函数与返回值 2. 异常处理 2.1 raise 语句 ...

  8. java基础入门-04-【集合学生管理系统】

    Java基础入门-04-[集合&学生管理系统] 11.集合&学生管理系统 11.1.ArrayList 集合和数组的优势对比: 11.1.1 ArrayList类概述 11.1.2 A ...

  9. Python基础day05【函数(函数传参的两种形式、函数形参)、拆包、引用、可变与不可变类型、引用做函数参数注意点】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员]    目录 0.复习 1.函数传参的两种形式[掌握] 2.函数形参 2.1.缺省参数(默认参数) ...

最新文章

  1. datagrip mysql乱码_DataGrip 2019.1.2 x64 连接MySQL出错解决
  2. jdbc链接oracle报错ORA-12505解决办法
  3. 深入理解Python中的元类(metaclass)
  4. prometheus常用语法
  5. linux内核之kfifo队列
  6. html5 audio js控制进度,HTML5 audio标签使用js进行播放控制实例
  7. matlab2c使用c++实现matlab函数系列教程-sign函数
  8. 基于嵌入式linux路由转发功能的实现
  9. android-async-http框架之与网络进行数据交互
  10. Windows 10 Python 深度学习环境安装
  11. ccf中文期刊目录_中国计算机学会CCF推荐中文科技期刊目录
  12. 奥奇手游怎么显示部分服务器,奥奇传说手游区服互通吗
  13. Java面试基础(二)
  14. Excel分组最大级别为8(outlineLevel最大为7)
  15. springBoot+itext处理富文本转pdf
  16. 微信公众号JS屏蔽分享,复制链接等
  17. 人工智能算法之三数码
  18. 初中数学分几个模块_谁整理的?超全初中数学四大板块思维导图汇总,初中生请签收!...
  19. 找实习的一些感悟(图像算法转大数据)——女孩也能干开发
  20. PPTP协议详解及报文解析

热门文章

  1. python 重载id函数_Python函数重载实例
  2. c语言二维图形变换程序,【计算机图形学】3-2 二维几何变换根本代码
  3. php检测目录,php检测文件目录大小类
  4. php制表网页打印到a4纸,A4纸网页打印 html网页页面的宽度设置成多少
  5. mysql的内存数据库,MySQL内存数据库的新选择-MariaDB4J
  6. 二十七、深入浅出Python中的 os模块
  7. Map和hashmap
  8. pyqt5动态显示当前时间
  9. 2020-2-15技术积累-时间插件-前端获取后端数据生成表格
  10. 远程监督关系抽取漫谈:结合知识图谱和图神经网络