[ Python ] 用Python实现一个简单课堂点名器V4

一、任务描述

  1. 以18级网工学生名单为例,从外部文件导入学生信息,并将学生信息存入MySQL数据库,随机对班级所有同学进行点名。
  2. 判断未到学生是否有请假条,有则视为请假,无则视为旷课。
  3. 对点名结束后进入教室的学生将旷课改为迟到。
  4. 对中途离开课堂学生计为早退(需要考虑学生既是迟到又是早退的情况)。
  5. 将未到学生按照请假、旷课、迟到、早退四类分别存储在MySQL数据库中的四个表中。
  6. 从MySQL数据中读取请假、旷课、迟到、早退四类信息并分别展示。

二、方案

pandas包将”网工18学生名单.xls”导入,并转换为列表储存在info_list1。
要完成随机对班级所有同学的点名,可导入random库中的shuffle()函数,对info_list1中的元素随机排序。之后进行课前点名,遍历学生名单,答到的学生放入info_list2,未达到的学生判断是否有请假条,有则放进请假学生名单(ask_list),无则暂计入旷课(no_ask_list)对no_ask_list进行第二次点名,未到则旷课,到了放进迟到名单,对info_list2进行第二次点名,未到则早退。
连接MySQL数据库,将info_list1、ask_list、late_list、absence_list、early_list存放的数据插入数据库对应表中。使用select语句输出请假、旷课、迟到、早退四类信息。
 

三、流程图

流程图
 

四、代码

import random
import pymysql
import pandas as pd

def case(ask):
    '''
    功能:判断课前点名未到学生是请假还是暂计入旷课。 
    '''
    if ask == '1':
        ask_list.append([student_no,student_name])          
        print("请假")    
    elif ask == '0': 
    	no_ask_list.append([student_no,student_name]) 
    	print("暂计入旷课")

def after_class(list1,list2,list3):
    '''
    功能:课后点名,判断旷课、迟到、早退。 
    '''
    for student_no,student_name in list1:
        res = input(f"{student_name}?\t") 
        if res == 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值