python实现学生信息管理系统(精简版)

Python实现学生信息管理系统(精简版)攻略

简介

本文将介绍如何使用Python编写一个简单的学生信息管理系统。在该系统中,我们将使用文件来存储学生信息,并提供添加、删除、修改、查询等基本功能。在操作时,我们将使用命令行交互,用户可以根据提示输入相应的指令来实现操作。

环境配置

在开始之前,我们需要确保Python环境已经安装并正确配置。

  1. 首先,我们需要从Python官网下载并安装Python。你可以访问Python官网来查找适合你的操作系统的Python版本。
  2. 安装完成后,我们需要确保Python已正确配置到环境变量中。在命令行中输入python -V可以检查是否正确安装。
  3. 在Python安装完成并且正确配置后,我们需要安装pandas库,这里我们使用以下命令来完成:
pip install pandas

设计思路

在设计学生信息管理系统时,我们需要考虑以下几个问题:

  1. 如何存储学生信息?
  2. 如何添加、删除、修改和查询学生信息?
  3. 如何在命令行中与用户进行交互?

为了解决这些问题,我们将使用以下方案:

  1. 学生信息将存储在一个CSV文件中。
  2. 我们将使用pandas库来读取和写入CSV文件,使用相关函数实现添加、删除、修改和查询功能。
  3. 我们将使用命令行界面与用户进行交互。

具体实现方式将在下面的代码块中介绍。

代码实现

以下是完整的Python代码实现:

import pandas as pd

class StudentManager:
    def __init__(self, file_path):
        self.data = pd.read_csv(file_path, index_col=0)

    def add_student(self, name, age, gender):
        index = len(self.data) + 1
        self.data.loc[index] = [name, age, gender]

    def remove_student(self, id):
        self.data.drop(id, inplace=True)

    def modify_student(self, id, name=None, age=None, gender=None):
        if name is not None:
            self.data.loc[id, 'name'] = name
        if age is not None:
            self.data.loc[id, 'age'] = age
        if gender is not None:
            self.data.loc[id, 'gender'] = gender

    def query_student(self, id=None, name=None):
        if id is not None:
            return self.data.loc[id]
        elif name is not None:
            return self.data[self.data['name'] == name]
        else:
            return self.data

    def save_data(self, file_path):
        self.data.to_csv(file_path)

def main():
    file_path = 'student_info.csv'
    manager = StudentManager(file_path)

    while True:
        print("\nWelcome to Student Information Management System")
        print("-" * 50)
        print("1. Add Student Information")
        print("2. Remove Student Information")
        print("3. Modify Student Information")
        print("4. Query Student Information")
        print("5. Exit System")
        print("-" * 50)
        option = input("Please enter the option number: ")

        if option == '1':
            name = input("Please input student name: ")
            age = input("Please input student age: ")
            gender = input("Please input student gender: ")
            manager.add_student(name, age, gender)
            print("Student information added!")

        elif option == '2':
            id = input("Please input student id to be removed: ")
            manager.remove_student(int(id))
            print("Student information removed!")

        elif option == '3':
            id = input("Please input student id to be modified: ")
            name = input("Please input student name (press Enter to skip): ")
            age = input("Please input student age (press Enter to skip): ")
            gender = input("Please input student gender (press Enter to skip): ")
            manager.modify_student(int(id), name, age, gender)
            print("Student information modified!")

        elif option == '4':
            print("-" * 50)
            print(manager.query_student())
            print("-" * 50)
            id = input("Please input student id to be queried (press Enter to skip): ")
            name = input("Please input student name to be queried (press Enter to skip): ")
            if id != '':
                print(manager.query_student(int(id)))
            if name != '':
                print(manager.query_student(name=name))

        elif option == '5':
            manager.save_data(file_path)
            print("Student information saved!")
            break

        else:
            print("Invalid option number, please try again.")

if __name__ == '__main__':
    main()

代码中包括了一个名为StudentManager的类,这个类的作用是管理学生信息。

我们先来看一下这个类的构造函数__init__()。这个函数接受一个文件路径参数,它会从指定的CSV文件中读取学生信息。index_col=0表示将CSV文件中的第一列作为行索引。

class StudentManager:
    def __init__(self, file_path):
        self.data = pd.read_csv(file_path, index_col=0)

接下来分别介绍该类中的添加、删除、修改和查询功能。这些功能都是通过pandas库实现的。

  • 添加

添加学生信息需要提供姓名、年龄和性别三个参数,这些信息将会添加进CSV文件中。

    def add_student(self, name, age, gender):
        index = len(self.data) + 1
        self.data.loc[index] = [name, age, gender]
  • 删除

删除学生信息需要提供要删除的学生id,这个id对应的学生信息将会从CSV文件中删除。

    def remove_student(self, id):
        self.data.drop(id, inplace=True)
  • 修改

修改学生信息需要提供要修改的学生id,并可选择提供新的姓名、年龄和性别信息。modify_student()函数通过判断这些信息是否提供来决定是否需要对相应列进行修改。

    def modify_student(self, id, name=None, age=None, gender=None):
        if name is not None:
            self.data.loc[id, 'name'] = name
        if age is not None:
            self.data.loc[id, 'age'] = age
        if gender is not None:
            self.data.loc[id, 'gender'] = gender
  • 查询

查询学生信息可以根据学生id或姓名进行。如果不提供这两个参数,则会返回所有学生信息。query_student()函数根据传入的参数来判断进行何种查询。

    def query_student(self, id=None, name=None):
        if id is not None:
            return self.data.loc[id]
        elif name is not None:
            return self.data[self.data['name'] == name]
        else:
            return self.data

最后是一个名为main()的函数,这个函数利用了一个无限循环,实现在命令行中与用户进行交互的方式。用户输入相应的指令,程序根据这些指令执行不同的操作。

def main():
    file_path = 'student_info.csv'
    manager = StudentManager(file_path)

    while True:
        print("\nWelcome to Student Information Management System")
        print("-" * 50)
        print("1. Add Student Information")
        print("2. Remove Student Information")
        print("3. Modify Student Information")
        print("4. Query Student Information")
        print("5. Exit System")
        print("-" * 50)
        option = input("Please enter the option number: ")

        if option == '1':
            name = input("Please input student name: ")
            age = input("Please input student age: ")
            gender = input("Please input student gender: ")
            manager.add_student(name, age, gender)
            print("Student information added!")

        # 省略删除、修改和查询部分

        elif option == '5':
            manager.save_data(file_path)
            print("Student information saved!")
            break

        else:
            print("Invalid option number, please try again.")

示例说明

以下是使用示例:

  1. 添加学生

在命令行中输入 1,然后输入名字、年龄、性别三个信息:

Please enter the option number: 1

Please input student name: Jack
Please input student age: 20
Please input student gender: M

Student information added!

此时学生信息已经添加成功。

  1. 查询学生

在命令行中输入4,然后根据提示输入要查询的学生的id或name:

Please enter the option number: 4
--------------------------------------------------
   name  age gender
1  Jack   20      M
--------------------------------------------------
Please input student id to be queried (press Enter to skip):
Please input student name to be queried (press Enter to skip): Jack
   name  age gender
1  Jack   20      M

可以看到,输入姓名后,程序会在CSV文件中查找匹配的学生信息,并输出到屏幕上。

以上是学生信息管理系统的简单使用示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现学生信息管理系统(精简版) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 自己编程中遇到的Python错误和解决方法汇总整理

    当我们在Python编程过程中,可能会遇到各种各样的错误,例如语法错误、逻辑错误、模块导入错误等。这些错误可能会导致程序无法正运行,因此我们需要及时解决这些错误。以下是自己编程中遇到的Python错误和解决方法的汇总整理: 1. TypeError 当我们在Python编程过程中遇到以下的报错: TypeError: unsupported operand …

    python 2023年5月13日
    00
  • python代码实现扫码关注公众号登录的实战

    Python代码实现扫码关注公众号登录的实战攻略 扫码关注公众号登录是一种常见的登录方式,本文将讲解如何使用Python实现扫码关注公众号登录的实战攻略,包括以下几个方面: 理解扫码关注公众号登录的原理 使用Selenium模拟扫码关注公众号登录 使用itchat模块实现扫码关注公众号登录 实践示例 理解扫码关注公众号登录的原理 扫码关注公众号登录是指用户使…

    python 2023年5月15日
    00
  • python压缩和解压缩模块之zlib的用法

    下面开始详细讲解python的压缩和解压缩模块zlib的用法。 什么是zlib模块 zlib是Python标准库中的模块之一,主要负责压缩和解压缩数据。其使用简洁,但也非常强大,支持的压缩和解压缩算法有gzip、deflate和zlib三种。 zlib的使用方法 在Python中使用zlib模块主要有两个方法:compress和decompress。其中co…

    python 2023年6月3日
    00
  • python爬虫(入门教程、视频教程) 原创

    Python爬虫入门教程 本教程将介绍如何使用Python编写简单的网络爬虫。首先,我们将学习如何获取网页的HTML代码,然后解析HTML代码以提取有用的信息。 环境准备 Python3.x requests库 BeautifulSoup库 通过requests库获取HTML代码 requests库是Python中一个常用的HTTP请求库,可以方便地向Web…

    python 2023年5月13日
    00
  • Python常用的正则表达式处理函数详解

    Python常用的正则表达式处理函数详解 正则表达式是一种强大的文本处理工具,可以用于各种文本处理,如数据清洗、文本分、信息提取等。在Python中,我们使用模块提供的函数来操作正则表达式。本攻略将详细讲解Python常用的正则表达式处理函数,包括re.match()、re.search()、re.findall()、re.sub()、re.split()等…

    python 2023年5月14日
    00
  • python 中如何获取列表的索引

    以下是“Python中如何获取列表的索引”的完整攻略。 1. 列表索引的概述 在Python中,列表(list)是一常见的数据,它允我们存储多个值。有候我们需要获取列表中某个元素的索引,以便更好地处理。在本攻略,我们将介绍两种常见的Python获取索引的方法。 2. 方法一:使用index()函数 Python的index()函数可以用获取列表中某个元素的索…

    python 2023年5月13日
    00
  • 用Python中的NumPy在点(x,y)上评估二维Hermite_e数列与三维数组的系数

    评估二维Hermite_e数列与三维数组的系数可以采用Python中的NumPy库,下面是详细的攻略: 安装NumPy库:可以通过pip安装NumPy库,命令为:pip install numpy 导入NumPy库:在代码中导入NumPy库,命令为:import numpy as np 定义Hermite_e二维数列:可以通过以下代码定义Hermite_e二…

    python-answer 2023年3月25日
    00
  • python pandas实现excel转为html格式的方法

    下面是python pandas实现excel转为html格式的方法的完整实例教程。 1. 安装依赖库 首先需要安装 pandas 库,可以通过 pip 来安装: pip install pandas 2. 导入库并读取数据 接下来需要导入相应的库并读取数据,将 Excel 文件读入 pandas 的 dataframe 中,这里以一个名为 sheet1 的…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部