首页 > 编程语言 >Python实战项目:开发学生管理系统(基础版)

Python实战项目:开发学生管理系统(基础版)

时间:2023-12-25 20:37:31浏览次数:37  
标签:实战 name chinese 管理系统 Python 学生 students student print

课题:学生信息管理系统

知识点:

基本的数据类型与结构(int/str/float/bool,list,dist,luple,sel)
基本的逻辑控制语句(if/for/while/break/continue)
Python实战项目:开发学生管理系统(基础版)

目录

1.打印学生信息系统页面
2.搭建用户操作框架
3.创建学生信息
4.新建学生信息
5.将学生信息保存到本地
6.查询学生信息
7.删除学生信息
8.修改学生信息

打印学生信息系统页面

infor = """
*******************************************************

欢迎使用【学生信息管理系统】v1.0
请选择你想要进行的操作
1.新建学生信息
2.显示全部信息
3.查询学生信息
4.删除学生信息
5.修改学生信息


0.退出系统
*******************************************************
"""
print(infor)

Python实战项目:开发学生管理系统(基础版)_信息保存

搭建用户操作框架

# 从外部输入用户的操作
action = input("请输入想要进行的操作:")
if action == '1':
    print('新建学生信息')
elif action == '2':
    print('显示全部信息')
elif action == '3':
    print('查询学生信息')
elif action == '4':
    print('删除学生信息')
elif action == '5':
    print('修改学生信息')
elif action == '0':
    print('退出系统')
else:
    print('输入有误,请输入正确操作数字。')

Python实战项目:开发学生管理系统(基础版)_Python实战项目_02

创建学生信息

students = [
    {'name':'张三','math':'60','chinese':'60','english':'60','total':'180'},
    {'name':'李四','math':'70','chinese':'70','english':'70','total':'210'},
    {'name':'王五','math':'80','chinese':'80','english':'80','total':'240'},
]

Python实战项目:开发学生管理系统(基础版)_Python实战项目_03

显示学生信息

elif action == '2':
    print('显示全部信息')
    print('姓名\t数学\t语文\t英语\t总分')
    for student in students:
        print('{}\t{}\t{}\t{}\t{}'.format(*student.values()))  # *将列表值进行解剖

Python实战项目:开发学生管理系统(基础版)_信息管理系统_04

新建学生信息

if action == '1':
    print('新建学生信息')
    name = input('请输入新建学生名字:')
    math = int(input('请输入新建学生数学成绩:'))
    chinese = int(input('请输入新建语文成绩:'))
    english = int(input('请输入新建英语成绩:'))
    total = math + chinese + english
    students.append(
        {'name': name,
         'math': math,
         'chinese': chinese,
         'english': english,
         'total':  total})

Python实战项目:开发学生管理系统(基础版)_Python实战项目_05

Python实战项目:开发学生管理系统(基础版)_信息管理系统_06

将学生信息保存到本地

以便下次打开删减增学生信息还在

import json   # 把数据保存到本地文件
# # 原始数据
# students = [
#     {'name':'张三','math':'60','chinese':'60','english':'60','total':'180'},
#     {'name':'李四','math':'70','chinese':'70','english':'70','total':'210'},
#     {'name':'王五','math':'80','chinese':'80','english':'80','total':'240'},
# ]

# 从JSON文件中读取数据
with open('students.json', mode='r', encoding='utf-8') as f:
    students = json.load(f)

Python实战项目:开发学生管理系统(基础版)_开发学生管理系统_07

with open('students.json',mode='w',encoding='utf-8') as f:     # 将修改的students文件重新写入保存到json中
    f.write(json.dumps(students,ensure_ascii=False))    # 将students转为str并保存
break

Python实战项目:开发学生管理系统(基础版)_开发学生管理系统_08

自动生成一个名为students.json文件

Python实战项目:开发学生管理系统(基础版)_Python实战项目_09

创建一个学生信息并退出系统

Python实战项目:开发学生管理系统(基础版)_Python实战项目_10

Python实战项目:开发学生管理系统(基础版)_信息保存_11

重新进入系统查询全部学生信息

Python实战项目:开发学生管理系统(基础版)_开发学生管理系统_12

查询学生信息

elif action == '3':
    # print('查询学生信息')
    name = input('请输入想要查询的学生名字:')
    for student in students:
        if name == student['name']:
            print('姓名\t数学\t语文\t英语\t总分')
            print('{}\t{}\t{}\t{}\t{}'.format(*student.values()))
            break
    else:
        print(f'{name}这个学生不存在。')

Python实战项目:开发学生管理系统(基础版)_Python实战项目_13

删除学生信息

elif action == '4':
    # print('删除学生信息')
    name = input('请输入想要删除的学生名字:')
    for student in students:
        if name == student['name']:
            # 删除信息可以使用del,pop,remove
            # students.remove(student)
            # students.pop(students.index(student))
            del students[students.index(student)]    # students.index(student)提取下标
            break
    else:
        print(f'{name}这个学生不存在。')

Python实战项目:开发学生管理系统(基础版)_json_14

Python实战项目:开发学生管理系统(基础版)_开发学生管理系统_15

修改学生信息

elif action == '5':
    # print('修改学生信息')
    name = input('请输入想要修改的学生名字:')
    for student in students:
        print('请重新输入学生成绩,如果不输入内容/输入空格则不修改此项成绩')
        if name == student['name']:
            math = input('请输入修改后学生数学成绩:')
            if math:
                math = int(math)
                student['math'] = math

            chinese = input('请输入修改后学生语文成绩:')
            if chinese:
                chinese = int(chinese)
                student['chinese'] = chinese

            english = input('请输入修改后学生英语成绩:')
            if english:
                english = int(english)
                student['english'] = english
            student['total'] = int(student['math']) + int(student['chinese']) + int(student['english'])
            break
    else:
        print(f'{name}这个学生不存在。')

Python实战项目:开发学生管理系统(基础版)_信息保存_16

Python实战项目:开发学生管理系统(基础版)_信息保存_17


标签:实战,name,chinese,管理系统,Python,学生,students,student,print
From: https://blog.51cto.com/u_16352455/8971697

相关文章

  • Python中selenium库的用法详解
    selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。模拟浏览器进行网页加载,当requests,urllib无法正常获取网页内容的时候一、声明浏览器对象注意点一,Python文件名或者包名不要命名为selenium,会导致无法导入fromseleniumimportwebdriver#web......
  • Python+uiautomator2实现手机锁屏解锁功能
    业务需求:需要测试手机滑动解锁失败时事件的次数及等待的时间,本来想利用Python+Appium实现,但是Appium运行时自动给我解锁了....部分解释摘抄自:https://testerhome.com/topics/11357python-uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试python-uiautomator2......
  • python中的unittest框架实例详解
    在python中我们学习了不少理论知识,那么对相关的程序进行测试,就显得很重要了。本篇要讲的是unittest框架,我们可以用它来做一些测试工作,又或者是相关代码的编写。下面我们就unittest框架的说明、特性和4种字模块分别带来介绍,大家一起来看具体内容。1.unittest说明unittest是Python自......
  • Python 如何在测试中使用 Mock
    Mock概念mock的意思是模拟,也就是模拟接口返回的信息,用已有的信息替换它需要返回的信息,从实现对所依赖的模块的测试。一般有两种场景:前端对后端接口的mock,后端服务之间的测试中涉及的mock,常常发生在单元测试的时候。前端mock可以通过一些工具来完成:使用抓包工具Fiddler,Charles来......
  • Python内置语法手册
    一、引入​ 在Python中有很多不常见内置函数,内置语法,为了方便查阅使用。现在将它们进行归纳。二、内置函数#abs():返回数字的绝对值abs(-7)#>>>7#all():如果参数里的可迭代对象中所有值都是True,则返回True。空值为Falseall(['1','',1])#>>>False#any():如果可......
  • python测试框架unittest和pytest区别
    一、用例编写规则(1)unittest提供了testcases、testsuites、testfixtures、testrunner相关的类,让测试更加明确、方便、可控。使用unittest编写用例,必须遵守以下规则:测试文件必须先importunittest测试类必须继承unittest.TestCase测试方法必须以“test_”开头测试类必须要有un......
  • 企业实战总结:SQL Join执行的常见问题及解决方案
    1.背景SQL的join对于数据开发同学是最经常遇到的操作,通过表与表之间的关联来得到想要的数据。但是在开发中我们会遇到一些莫名奇妙的问题,本文就选择最常见的两类问题跟大家分享。2.结果不符合预期2.1string和bigint做join,出现重复数据这个问题源于底层的隐式转换规则,当string和b......
  • Python 中 key 参数的含义及用法
    哈喽大家好,我是咸鱼我们在使用sorted()或map()函数的时候,都会看到里面有一个key参数其实这个key参数也存在于其他内置函数中(例如min()、max()等),那么我们今天就来了解一下key参数的含义以及用途吧!原文:https://www.thepythoncodingstack.com/p/the-key-to-the-key-p......
  • AI分布式训练:DDP (数据并行)技术详解与实战
    分布式训练:DDP(数据并行)技术详解与实战一、背景介绍什么是AI分布式训练分布式训练作为一种高效的训练方法,在机器学习领域中得到了广泛的应用和关注。而其中的一种技术,就是数据并行(DDP)。在本节中,我们将详细介绍什么是AI分布式训练,并重点讨论了数据并行技术的原理和实施方式。我们将......
  • pdm符合最新PEP标准的现代python 包以及依赖管理工具
    pdm符合最新PEP标准的现代python包以及依赖管理工具支持的特性简单快速的维护依赖解析,主要为了构建大的二进制分发PEP517构建后端PEP621项目元数据灵活强大的插件系统多功能用户脚本类似pnpm的中心化安装优化安装命令使用过的mac系统的 brewin......