Python全栈开发教程——037(完结)

本文详细介绍了Python开发的学生信息管理系统,包括统计学生总人数、显示所有学生信息、排序模块设计和项目打包成exe。通过这些功能,提高了学生信息管理的效率和便捷性。同时,文中还涉及到了代码优化和运行效率提升的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 学生信息管理系统-统计学生总人数

我们刚刚介绍了学生信息模块,现在我们来看看查询与统计模块。这个模块包含多个功能,其中第一个功能是统计学生总人数。当我们在菜单栏选择6时,系统会告诉我们PST文本文件中一共有多少个学生。
在实现这个功能时,我们需要先判断学生文件是否存在。如果文件不存在,那么我们就返回一个“暂未保存数据”的提示。如果文件存在,我们就以指针读的方式打开文件并读取全部数据。读取的信息会被放到学生列表中。接着,我们就可以判断列表是否为空并统计列表的长度,计算出学生总人数。
在这个过程中,我们需要注意几个点。首先,我们需要检查文件是否存在。如果文件不存在,那么我们就无法统计学生总人数。其次,我们需要确保学生列表中至少包含一名学生的信息。如果列表为空,那么我们无法统计学生总人数。最后,我们需要确保代码的稳定性和可读性。
在主函数中,我们可以找到名为Toto的函数。这个函数是用来计算学生总人数的。在这个函数中,我们也需要检查文件是否存在。如果文件不存在,那么我们就返回一个“暂未保存数据”的提示。如果文件存在,我们就以指针读的方式打开文件并读取全部数据。读取的信息会被放到学生列表中。接着,我们就可以判断列表是否为空并统计列表的长度,计算出学生总人数。
总结一下,查询与统计模块可以帮助我们更好地了解学生信息。在统计学生总人数这个功能中,我们需要注意文件是否存在以及学生列表是否为空。只有当文件存在且学生列表不为空时,我们才能够正确地统计学生总人数。在实现这个功能时,我们需要考虑代码的稳定性和可读性。通过这个模块,我们可以更好地管理学生信息,提高学生管理的效率。

  • 学生信息管理系统-显示所有学生信息功能

功能介绍:
该功能可以显示学生信息文件中保存的所有学生信息。
业务流程:
判断学生信息文件是否存在于磁盘上,如果文件不存在则程序结束。
如果文件存在,则以只读模式打开文件,读取全部列表,将每个学生的信息转换成字典类型并添加到列表中。
判断列表是否为空,如果为空则表示文件中没有保存任何学生信息,程序结束。
如果列表不为空,则展示学生信息。
代码实现:
首先定义一个用于存储学生信息的列表students。然后判断学生信息文件在磁盘上是否存在,如果文件不存在则提示用户暂未保存过数据。如果文件存在,则以只读模式打开文件,并使用csv.reader()函数读取全部学生信息,将每个学生的信息转换成字典类型并添加到列表students中。
代码如下:
import os
import csv

def show():
    # 定义存储学生信息的列表
    students = []

    # 判断学生信息文件是否存在
    if not os.path.exists('student.psd'):
        print('暂未保存过数据!')
        return

    # 以只读模式打开文件,读取全部学生信息
    with open('student.psd', 'r', encoding='utf-8') as f:
        reader = csv.reader(f)
        # 将每个学生的信息转换成字典类型并添加到列表中
        for item in reader:
            student = {'姓名': item[0], '性别': item[1], '年龄': item[2], '地址': item[3]}
            students.append(student)

    # 如果列表不为空,则展示学生信息
    if students:
        print('当前所有学生信息如下:')
        for student in students:
            print(student)
    else:
        print('未查询到任何学生信息!')

以上是该功能的详细介绍和业务流程,以及代码实现。

  • 学生信息管理系统-排序模块设计

在这个模块中,我们来看一下排序模块的设计。这个模块的主要功能是根据学生的成绩进行排序。你可以选择0表示声序,选择1表示量序。当你选择完声序或降序之后,你就可以选择你要按照哪个成绩排序,是按照英语成绩、Python成绩、Java成绩还是总成绩。根据你的选择,进行相应的排序方式。现在,我们来看一下这个模块的业务流程。
首先,我们需要将全部的信息读取到列表中。我们需要从文件中读取,然后将学生信息转换成字典,并添加到列表中。接下来,我们需要选择排序方式,是按照声序排序还是降序排序。如果你选择的不是0或1,我们需要重新读取列表当中的信息。不管你选择的是0还是1,我们都需要调用排序的方法。排序函数是我们的start。然后,我们开始进行排序操作,最后调用sort函数,将我们的排序结果进行展示。
现在,我们来看一下主函数当中的sort函数。我们在这里开始写我们的排序代码。首先,我们需要调用一个方法,将全部的学生信息进行展示。然后,我们需要判断文件是否存在。如果文件不存在,我们需要返回。如果文件存在,我们需要使用v字open方法,以指定的方式打开文件。我们需要读取文件中的信息,并将读取到的学生信息存储到一个叫做student list的列表当中。然后,我们需要遍历这个列表,将我们的字母串转成字典类型,并将其存储到一个叫student new的列表当中。我们在这里使用一个叫做Evo的函数,将我们的字母串和字典进行转换。然后,我们将这个字典添加到我们的学生列表当中。
当我们已经将学生信息添加到列表当中之后,我们需要开始选择排序方式。而选择排序方式就是你的键盘录入。我们需要输入a s c o这些字母。然后,我们需要让你选择排序方式,是按照英语成绩排序、Python成绩排序、Java成绩排序还是总成绩排序。然后,我们开始判断你的输入。如果你选择的是1,我们就按照英语成绩排序。如果你选择的是2,我们就按照Python成绩排序。如果你选择的是3,我们就按照Java成绩排序。如果你选择的是0,我们就按照总成绩排序。如果你的输入有误,我们会提示你重新输入。
然后,我们就开始进行排序操作了。我们使用的函数是我们的sort方法。我们在这里使用了一个匿名函数,来帮助我们进行排序。我们使用了一个叫做limit的方法,将我们的student new这个列表传进来。然后,我们从这个student new当中,根据键去获取它的值,然后进行一个Int类型转换。最后,将结果付给k。然后,我们就可以开始进行排序操作了。
这一段代码写完之后,我们现在来给大家演示一下我们的排序。在我们的TST文件当中,有很多个数据。现在,我们就可以运行这个程序了。

  • 学生信息管理系统-项目打包生成exe可执行文件

在项目完成后,我们需要对其进行打包,将其打包成一个可执行的exe文件,这样即使在其他没有安装Python开发环境的计算机上也可以运行我们的项目。要对项目进行打包,我们需要安装一个名为"pyinstaller"的第三方模块。安装方法是在线安装。在Windows上,按下Win+R,打开CMD窗口,然后在其中输入"pip install pyinstaller",这样我们就可以进行离线安装了。在安装完成后,我们就可以使用这个模块对项目进行打包了。打包语法如下:pyinstaller -F <module>,其中,"-F"表示只生成一个扩展名为exe的可执行文件,后面的"<module>"则是你要打包的模块。打包完成后,我们可以在指定路径找到生成的可执行文件。在Windows上,按下Win+E,然后找到指定路径以查找生成的可执行文件。
以上是对项目进行打包的操作,现在我们来重点谈一下如何对项目进行优化。在Python中,有很多方法可以优化代码,提高程序的运行效率。以下是一些常用的优化技巧:
使用字典代替if-else语句:如果你的程序中包含大量的if-else语句,那么可以考虑使用字典来代替它们。因为字典的查找速度非常快,所以可以大大提高程序的运行效率。
使用局部变量:在Python中,局部变量的访问速度比全局变量快得多,因为Python在访问局部变量时不需要进行作用域的查找。
使用列表解析:列表解析是一种非常高效的方式,可以在一行代码中完成循环、条件判断等操作。
避免使用循环:循环是一种非常耗时的操作,如果可以避免使用循环,就可以大大提高程序的运行效率。
使用生成器:生成器是一种可以按需生成数据的对象,它可以在程序运行时节省大量的内存空间。
使用函数库:Python中有很多优秀的函数库,可以帮助我们完成各种任务,如NumPy、Pandas等。
以上是一些常用的优化技巧,我们可以根据实际情况选择合适的优化方法来提高程序的运行效率。同时,我们还需要注意一些代码规范,如变量命名、代码缩进等,这些都可以对代码的可读性和运行效率产生影响。
总之,优化代码是一项非常重要的工作,能够提高程序的运行效率,减少资源的消耗,提高用户体验。希望以上内容能够对大家有所帮助,也希望大家能够在以后的学习过程中不断精进,不断提高自己的能力,成为一名优秀的Python开发者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

趋势洞察库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值