用 Python 写了一个电子考勤系统

用Python写了一个电子考勤系统 项目简介 学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言Python,准备让你们实现部分学生端考勤功能。经过和老师的沟通,你了解到: (1) 目前该系统已经被学长实现了部分功能,你们只需要完成剩余功能即可,需要你们完成的功能会使用#todo的形式进行标注, todo后面会列出这个地方的功能,形式如下: (2) 学生信息存储在stu_infos.csv文件中,第一行是列名行,后面每一行都是一个学生的信息,包含学号,姓名,密码。内容形式如下: (3) 考勤记录最终会被保 阅读详情
今天给大家分享一个比较有意思的Python应用,用 Python 写了一个电子考勤系统,源码已在文章全部给出,记得点赞收藏哦~

项目简介

学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言Python,准备让你们实现部分学生端考勤功能。经过和老师的沟通,你了解到:

(1) 目前该系统已经被学长实现了部分功能,你们只需要完成剩余功能即可,需要你们完成的功能会使用

#todo的形式进行标注, todo后面会列出这个地方的功能,形式如下。

(2) 学生信息存储在stu_infos.csv文件中,第一行是列名行,后面每一行都是一个学生的信息,包含学号,姓名,密码。内容形式如下:

(3) 考勤记录最终会被保存到attendance.csv文件中,第一行是列名行,后面每一行代表一个学生的考勤信息,包含学号,姓名,时间,考勤状态(只有出勤、迟到、请假、缺勤四种状态)。内容格式如下:

(4) 学生信息需要首先被加载到student_infos列表中,student_info中的每个元素都是一个字典,字典中的键都是各自列名,而值则是每一行内容,按照示例数据构造出来的student_infos列表如下。

(5) 考勤系统老师端总共有两个Python文件,一个main.py文件,该文件作为入口程序文件,实现主体框架,主体流程就是:加载数据 登录 添加考勤数据;一个stu_attendance.py文件,定义了数据加载、登录等函数。

答题要求

  1. 在stu_info.csv文件末尾添加一行自己的信息,密码随意写,名字和学号必须是自己

  2. 查看两个Python文件中的todo注释,添加合适代码,最终提供添加的代码。

  3. 测试程序功能,提供程序运行截图。进行登录验证的时候使用自己的学号进行登录验证,并且需要测试如下2个分支:3次都登录失败的情况、登录成功后成功添加考勤数据。

附加功能

添加一个查询功能,输入一个学生的姓名就可以获取他的出勤数据信息

导入模块

import csv  
import time  
student_infos = []  

加载数据

def load_stu_info():  
    """  
    加载学生信息  
    从stu_infos.csv文件中加载数据  
    :return: 无  
    """  
    with open(r"stu_infos.csv", encoding='utf-8-sig') as file:  
        f_csv = csv.reader(file)  
        header = next(f_csv)  
        for row in f_csv:  
            student_info = {}  
            for index in range(3):  
                student_info[header[index]] = row[index]  
            student_infos.append(student_info)  
  

登录

def login():  
    """  
    用户使用学号和密码进行登录  
    最多让用户登录三次,如果连续三次都登录失败(用户名或者密码错误),只要密码和用户都正确表示登录成功  
    :return:登录成功返回True和学号,三次都登录失败返回False和None  
    """  
    retry_time = 0  
    while retry_time < 3:  
        user_no = input('请输入登录账号:')  
        password = input('请输入密码:')  
        for i in student_infos:  
            if i['no']==user_no and i['password']==password:  
                return True,user_no  
        print('用户名或者密码错误!!!请重新输入。')  
        retry_time += 1  
    else:  
        return False, None  

考勤记录写入

def add(user_no):  
    for x in student_infos:  
        if user_no==x['no']:  
            name=x['name']  
            break  
    times=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  
    choices=['出勤','迟到','请假','缺勤']  
    a=int(input("\t该学生出勤情况:1-出勤\t2-迟到\t3-请假\t4-缺勤:"))  
    if a==1:  
        data=choices[0]  
    elif a==2:  
        data=choices[1]  
    elif a==3:  
        data=choices[2]  
    else:  
        data=choices[3]  
    with open(r"attendance.csv",'a+',newline='', encoding='utf-8') as f:  
        wf = csv.writer(f)  
        wf.writerow([user_no,name,times,data])#写入一行数据  
        print("{}同学{}数据已经写入成功!操作时间是{}".format(name,data,times))  

查询考勤记录

def select():  
    student = []  
    with open(r"attendance.csv", encoding='utf-8-sig') as file:  
        f_csv = csv.reader(file)  
        header = next(f_csv)  
        for row in f_csv:  
            students = {}  
            for index in range(4):  
                students[header[index]] = row[index]  
            student.append(students)  
        name=input("请输入你需要查找的姓名:")  
        print("  学号\t\t姓名\t\t操作时间\t\t出勤状态")  
        for a in student:  
            if a['name']==name:  
                print(a['no']+'\t'+a['name']+'\t'+a['time']+'\t\t'+a['state'])  
            else:  
                print("无此人!!!")  
                break  
  

主函数main.py

from student.stu_attendance import *  
if __name__ == '__main__':  
    load_stu_info()  
    success, stu_no = login()  
    print(stu_no)  
    if success:  
        print('登录成功!')  
        add(stu_no)  
        q=int(input("你想要查询出勤数据吗?\tyes(1)--no(0)"))  
        if q==1:  
            select()  
        else:  
            print("欢迎下次登录电子考勤系统")  
    else:  
        print('登录失败')  

看看运行效果哟!

以上就是“用 Python 写了一个电子考勤系统”的全部内容,希望对你有所帮助。
​
​关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

最新用Python写了一个电子考勤系统_用python写一个宿舍考勤系统 这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。 阅读详情

相关推荐

用 Python 写了一个电子考勤系统!

学生信息需要首先被加载到student_infos列表中,student_info中的每个元素都是一个字典,字典中的键都是各自列名,而值则是每一行内容,按照示例数据构造出来的student_infos列表如下。(3) 考勤记录最终会被保存到attendance.csv文件中,第一行是列名行,后面每一行代表一个学生的考勤信息,包含学号,姓名,时间,考勤状态(只有出勤、迟到、请假、缺勤四种状态)。测试程序功能,提供程序运行截图。#todo的形式进行标注, todo后面会列出这个地方的功能,形式如下。

qq_44967680的博客 640

djangoPython课堂考勤管理系统(程序+开题)

本系统(程序源码数据库调试部署开发环境)带文档lw万字以上,文末可获取系统程序文件列表开题报告内容研究背景: 随着信息技术的不断发展,教育行业也逐渐引入了各种先进的技术手段来提高教学质量和管理效率。在课堂管理方面,传统的考勤方式存在着诸多问题,如人工记录繁琐、易出错、无法实时监控等。因此,开发一款基于Python的课堂考勤管理系统具有重要的现实意义。意义: Python作为一种简单易学、功能强大的编程语言,广泛应用于各个领域。

暨阳程序 1332

用Python写了一个电子考勤系统!

(4) 学生信息需要首先被加载到student_infos列表中,student_info中的每个元素都是一个字典,字典中的键都是各自列名,而值则是每一行内容,按照示例数据构造出来的student_infos列表如下。(3) 考勤记录最终会被保存到attendance.csv文件中,第一行是列名行,后面每一行代表一个学生的考勤信息,包含学号,姓名,时间,考勤状态(只有出勤、迟到、请假、缺勤四种状态)。

m0_73720982的博客 292

基于Python+Django的学生考勤系统设计与实现

今天带来的是基于Python+Django的学生考勤管理系统设计与实现,考勤系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。与安卓,iOS相比较起来,考勤系统在流畅性,续航能力,等方方面面都有着很大的优势。这就意味着考勤系统的设计可以比其他系统更为出色的能力,可以更高效的完成最新的学生、教师、课堂信息、课堂考勤、学生签到、课程分类等功能。

qq_15801219的博客 1548

python趣味编程-使用 Django 的 Python 大学考勤管理系统

存储/记录和管理学生每堂课的出勤情况。使用该应用程序,他们可以轻松列出班级学生名单并记录每个学生的出勤情况。教师可以在特定日期将学生记录为“出席”、“迟到”或“缺席”。管理员用户是唯一可以注册教师系统凭据的用户,这意味着系统不支持公共端的任何用户注册。教师用户只能管理分配给他或他们的数据。如果出现任何缺失的模块,请安装。我希望这能帮助您找到您正在寻找的东西。拥有令人愉悦的用户界面。将静态文件解压到下载的源代码文件夹的根路径下。开发的基于 Web 的应用程序。提取的源代码文件夹。我用的是v3.9.1。

xiaoshun007的专栏 875

Python考勤系统源码(增删改查)

Python考勤系统源码(增删改查)

耗时半年,用 Python 写了一个电子考勤系统

学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言Python,准备让你们实现部分学生端考勤功能。经过和老师的沟通,你了解到:(1) 目前该系统已经被学长实现了部分功能,你们只需要完成剩余功能即可,需要你们完成的功能会使用#todo的形式进行标注, todo后面会列出这个地方的功能,形式如下。(2) 学生信息存储在stu_infos.csv文件中,第一行是列名行,后面每一行都是一个学生的信息,包含学号,姓名,密码。

m0_59596937的博客 497

TPS563201DDCR电路翻车实录:从原理图到PCB,我踩过的5个坑及补救方法

本文详细记录了使用TPS563201DDCR电源芯片设计电路时遇到的5个常见问题及解决方案,包括EN引脚配置、BST电容选型、反馈网络设计、PCB布局优化以及散热处理。通过实际案例和数据分析,帮助工程师避免类似错误,提升电源模块的可靠性和效率。

weixin_42532938的博客 530

王心凌火了,于是我用Python写了一个电子考勤系统

项目简介 学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言Python,准备让你们实现部分学生端考勤功能。经过和老师的沟通,你了解到: (1) 目前该系统已经被学长实现了部分功能,你们只需要完成剩余功能即可,需要你们完成的功能会使用#todo的形式进行标注, todo后面会列出这个地方的功能,形式如下: (2) 学生信息存储在stu_infos.csv文件中,第一行是列名行,后面每一行都是一个学生的信息,包含学号,姓名,密码。内容形式如下: (3) 考勤记录最终会被保存到atte

JAVAmonster12的博客 237

别再混淆了!一张图看懂SAP特殊采购类30/40/70/80的区别与选型指南

本文深度解析SAP特殊采购类30/40/70/80的核心逻辑与业务影响,通过对比框架和真实案例帮助用户掌握其适用边界。重点介绍委外加工(类型30)、工厂间转移(类型40/70)及计划与执行分离(类型80)的配置要点与常见问题,提供选型决策树和实施检查清单,助力企业优化供应链管理。

weixin_26938645的博客 453

workbench谐响应

定义材料 打开Engineering Data定义材料,在分析时不同部分选择不同材料 建模 打开Geometry建模,我举的例子很简单就一根光秃秃的轴 因为要加轴承,在轴上创建imprint face 因为要用point mass代替轴上原来的盘,在轴上盘的位置新建一个Plane,用Slice方法将轴从XYPlane3分成两段 施加边界条件以及谐响应分析 打开Model 1.在两段轴的交界面处,创建Point Mass,输入质量与转动惯量,位置在轴线上 2.mass point promote to.

my blogs include programming, math, physics.回首过去,放眼未来。 leslielee.blog.youkuaiyun.com 5884

2024年最全用Python写了一个电子考勤系统_用python写一个宿舍考勤系统,2024年最新1307页阿里Python面试全套真题解析在互联网火了

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。print(“{}同学{}数据已经写入成功!操作时间是{}”.format(name,data,times))最多让用户登录三次,如果连续三次都登录失败(用户名或者密码错误),只要密码和用户都正确表示登录成功。print(" 学号\t\t姓名\t\t操作时间\t\t出勤状态")name=input(“请输入你需要查找的姓名:”)

m0_60721649的博客 806

CTFmisc-------Jack

每一个文件里面都有不一样的base64编码,我尝试将其解密,发现解出来的是乱码,所以我想到真正的flag藏在这些字符串中,所以我们要写代码把字符串提取出来。提取出来后,得到很多的base64的编码,要一个一个的解码很麻烦,猜到里面有flag字样的base64编码,所以我们将flag进行base64编码,1.下载得到Jack文件夹,里面有很多的txt文件。发现这个字符串是众多编码中唯一一个没有==然后从那些base编码中寻找Zmxh字段。

woshicainiao666的博客 1万+

用Python编写一个电子考勤系统

实验项目简介 学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言Python,准备让你们实现部分学生端考勤功能。经过和老师的沟通,你了解到: (1) 目前该系统已经被学长实现了部分功能,你们只需要完成剩余功能即可,需要你们完成的功能会使用 #todo的形式进行标注, todo后面会列出这个地方的功能,形式如下。 (2) 学生信息存储在stu_infos.csv文件中,第一行是列名行,后面每一行都是一个学生的信息,包含学号,姓名,密码。内容形式如下: (3) 考勤记录最终会被保存到a

迷茫与徘徊只会让你陷入绝境,欢迎私信博主,带你开始提升变现价值! 1万+

七、永磁同步电机矢量控制(FOC)—MTPA控制及Simulink仿真

前面几节的内容已经完成Id=0控制策略的理论和仿真以及双闭环PI参数整定。在接下来几节中,将陆续讲解MTPA、弱磁控制等内容。

weixin_45182459的博客 8194

Scratch 3.0角色控制避坑指南:为什么你的键盘移动总卡顿?

本文深入剖析了Scratch 3.0中角色移动卡顿的根本原因,指出依赖`当按下`事件积木的局限性。通过对比分析,推荐采用`重复执行`结合`如果<键被按下?>`的循环控制方案,并引入速度变量模拟惯性,从而实现流畅、实时的键盘控制优化,显著提升游戏操作体验。

dd012的博客 1013
上一篇: 实战:用Python抓取腾讯视频电影
下一篇: 可解释AI的 Python 库,我推荐你用收藏这几个!
壹只小小码农
博客等级 码龄5年 8101粉丝 1334原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值