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

yizhihongxing

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基于Tkinter实现人员管理系统

    下面我会详细讲解“Python基于Tkinter实现人员管理系统”的完整攻略,包含以下几个部分: 安装Tkinter Tkinter是Python的标准GUI库,因此不需要额外安装。但如果你发现你的Python没有安装Tkinter库,那么你需要安装它。可以通过以下命令在命令行中安装: sudo apt-get install python3-tk 创建GU…

    python 2023年5月30日
    00
  • python脚本框架webpy入门安装及应用创建

    Python脚本框架web.py入门安装及应用创建完整攻略 1. 安装Web.py Web.py可以使用pip命令来安装,打开终端,输入以下命令: pip install web.py 2. 创建Web.py应用 2.1. 创建项目目录 在你喜欢的位置创建一个新目录,例如project。 mkdir project 2.2. 创建应用主文件 在项目目录中创建…

    python 2023年5月20日
    00
  • Python解析xml中dom元素的方法

    在Python中,可以使用xml.dom.minidom模块解析XML文件中的DOM元素。以下是Python解析XML中DOM元素的方法的详细攻略: 加载XML文件 要解析XML文件,需要先加载XML文件。以下是加载XML文件的示例: import xml.dom.minidom dom = xml.dom.minidom.parse(‘example.xm…

    python 2023年5月14日
    00
  • Python3.0与2.X版本的区别实例分析

    Python 3.0与2.X版本的区别实例分析 概述 Python 3.x 是 Python 2.x 的下一个重大版本,其中有一些值得注意的区别。 Python 3.0中包含了许多不兼容的变化,这意味着在迁移到3.0之前,必须进行代码更改和测试。本文将介绍主要的差异,并给出一些实例来说明不同点。 语法 print语法: Python 2.x中的print语法…

    python 2023年5月18日
    00
  • Python基础教程之错误和异常的处理方法

    Python基础教程之错误和异常的处理方法 在编写Python程序时,经常会出现各种错误和异常,这时候需要使用错误和异常的处理方法来解决问题。本篇文章将介绍Python中错误和异常的处理方法。 try/except 当Python程序出现错误或异常时,可以使用try/except语句来捕获并处理。try语句中的代码会被执行,如果出现错误或异常,则会被exce…

    python 2023年5月13日
    00
  • Python中apply函数的用法实例教程

    当使用Python编程时,我们会经常使用到一些内置函数,其中一个很常用的函数便是apply函数。本篇文章将从以下几个方面详细讲解apply函数的用法,帮助大家更好的理解和使用这个函数。 1. apply函数的基本用法 apply函数是Python中的一个内置函数,其作用是对于一个可迭代的对象(比如列表、元组等),将一个带有相应参数的函数应用到每个元素上,并返…

    python 2023年5月14日
    00
  • 一文带你了解ChatGPT API的使用

    一文带你了解ChatGPT API的使用 ChatGPT API是一个基于GPT模型的自然语言处理API,可以用于生成文本、问答、对话等多种应用场景。以下是一个示例,介绍了如何使用ChatGPT API。 示例一:使用Python请求ChatGPT API生成文本 以下是一个示例,使用Python请求ChatGPT API生成文本: import reque…

    python 2023年5月15日
    00
  • Python入门教程3. 列表基本操作【定义、运算、常用函数】 原创

    Python入门教程3.列表基本操作【定义、运算、常用函数】原创 在Python中,列表是一种非常常见的数据类型。列表基本操作是Python编程中的基础操作之一。本攻略将详细介绍Python列表的定义、运算、常用函数等。 列表的定义 在Python中,可以使用方括号[]来定义一个列表。以下是一些示例代码: # 定义一个列表 list1 = [1, 2, 3,…

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