简易的青年大学习完成人数统计

这篇博客介绍了如何使用Python的openpyxl库进行Excel文件操作,包括学生名单的录入和未完成人员的统计。通过判断输入是否为中文来确保数据的正确性,并提供了一个简单的交互式程序,允许用户输入学生姓名并保存到Excel表格。此外,还提供了程序退出和错误处理功能。
摘要由CSDN通过智能技术生成

首先你要有 openpyxl 第三方库,这个搜搜有很多教程的,我就不列举了

功能:

1.实现简单的excel表的录入。(前提是自己要创一个excel表格,本代码不负责这个)

2.实现人数的对比,判断输入是否为汉字。

3.程序的退出

关于汉字的判断可以参考这位大佬:

python中判断字符是否为中文_、Edgar的博客-CSDN博客_python判断是否为汉字

源代码如下:

def is_Chinese(word):
    for ch in word:
        if '\u4e00' <= ch <= '\u9fff':
            return True
    return False
print(is_Chinese("中文"))

关于比较人名,可以用 for 循环实现:

 for name1 in l:
            if name1 in list_temp:
                pass
            else:
                no_student.append(name1)

列表 l 是用来存团员人名的,list_temp用来存已做的团员人名

使用for循环遍历 l 列表,找到了退出第二个循环,进行第一个循环的下个,未找到就是未做的人,存入未做的人员列表 no_student

其他的功能都很简单了,应该一看就懂,有啥不懂的欢迎提问。我看见了会回复的

注意我的代码如果只是单纯的复制不修改,一定跑不起来,加载的 excel 的路径要自己设置

我的程序源代码如下:

# 青年大学习人数统计

import openpyxl as np

# 判断输入是否为中文
def is_Chinese(word):
    for ch in word:
        if '\u4e00' <= ch <= '\u9fff':
            return 1

# 实现学生的录入、人数统计
def excel_use1():
    route = r'路径'     # excel 路径
    wb = np.load_workbook(route)                         # 简化路径
    # print(wb.sheetnames)                                 # 查询表格有哪些
    ws = wb['Sheet1']                                 # 选择 Sheet1
    # my_sheet = wb.get_sheet_by_name('Sheet1')         # 根据工作表名称获取工作表
    print("功能一:录入学生名单")
    print("功能二:统计未做学生名单")
    choice = input("请选择功能(请输入数字 1 或者 2):")   # 功能选择
    if choice == '1':
        list_student = 录入学生人数和姓名()
        for i in range(len(list_student)):
            ws.cell(row = (i+1),column = 1,value = list_student[i])
        print("录入成功!")

    elif choice == '2':
        list_temp = []
        name = '开始'
        i= 0 
        while name != '退出':       # 结束标志
            name = input("请输入第%d位已做学生名字:"%(i + 1))
            print("如果要输入完成请输入:退出")
            flag = is_Chinese(name)       # 判断输入是否为中文
            if flag == 1:
                list_temp.append(name)    # 暂存学生名
                i = i + 1
            else:
                print("你们班同学名字不全是中文?!")
        
        l = []                              # 创建空列表
        no_student = []
        for i in ws.rows:                   # 提取表格中的学生姓名
            for j in i:
                l.append(j.value)          # 将 cell 的值赋给列表 
        for name1 in l:
            if name1 in list_temp:
                pass
            else:
                no_student.append(name1)
        print("未完成的人有:")
        i = 1
        for name3 in no_student:
            print("%d. %s"%(i,name3))
            i = i + 1
        print()
        print("共有%d人未完成。"%(len(no_student)))
    wb.save(route)
        

def 录入学生人数和姓名():
    student_num = input("请输入要做青年大学的总人数:")   #统计人数
    list_student = []           # 创建空列表,存放学生姓名
    i = 0
    while i < int(student_num):
        temp = input("请输入第 %d 位学生姓名:"%(i+1))
        flag = is_Chinese(temp)
        if flag == 1:
            list_student.append(temp)
            i = i + 1
            print("录入姓名成功!")
        else:
            print("你们班同学名字不全是中文?!")
    return list_student

#主函数
while True:
    excel_use1()
    print()
    flag = input("功能执行完毕,如要退出请输入0,不退出请输入1:")
    if flag == '0':
        break
print("退出程序成功!")

推荐一个 openpyxl 的教学视频(你同时也可以从那个up主那学习python的其他知识,我也是从那里学的):

2019 Python教程400集 不定时更新!_哔哩哔哩_bilibili

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值