持续创造,加速成长!这是我参加「掘金日新计划 4 月更文挑战」的第17天,点击查看活动详情

前言

咱们好,今日咱们来给咱们分享一个很有用的东西。这个小程序来自于一个很偶尔的想法,我作为班级团支书,核对青年大学习的名单是一件既费时又费力还没有技术含量的事情。那为何不写一个能够主动核对名单的小程序呢?

想法和思路

编写程序:咱们能够编写一个程序,用于帮助咱们核对青年大学习学习名单。这个程序能够根据咱们输入的学习名单,主动查看名单中的每个人是否现已完结了学习任务。咱们能够运用编程语言(如Python)来编写这个程序。

可是,咱们发现这个方法太麻烦,这个和我一个一个对比,有什么区别呢。我就想到了直接构建列表就好了啊。省时省力。

功用完结

url = 'http://dxx.ahyouth.org.cn/api/peopleRankStage'
data = {
    'table_name': 'reason_stage259',
    'level1': '直属高校',
    'level2': '某某大学',
    'level3': '电子工程与智能制造学院',
    'level4': '微电子科学与工程2002',
}
res = requests.get(url, params=data)

具体来说,这个 URL 是http://dxx.ahyouth.org.cn/api/peopleRankStage,表明请求一个名为reason_stage259的数据表中的某些列信息。这个数据表中可能包括一些数据,包括某个人的各种信息,例如他的直属高校、所在学院、专业等等。这儿便是咱们学习的名单。

data字典包括了需求查询的列名和对应的值,例如table_name表明需求查询的表名,level1表明需求查询的列名为level1的值,level2表明需求查询的列名为level2的值等等。

调用requests库中的get()方法,传入这个 URL 和data字典,能够获取服务器回来的结果。这个结果是一个字典,其间包括了查询的结果,便是学习的名单。

咱们发现回来res.text就会乱码,咱们能够转码,或者直接json解决。

咱们接着看看后面的程序:

html_lists = res.json()['list']['list']
for html_list in html_lists:
    username = html_list['username']
    yixue_list.append(username)

这段代码把res.json()回来的是一个包括多个字典的列表,每个字典代表一个用户的信息。['list']['list']表明字典中的第一个键对应的列表,即用户的姓名和学习时间。

循环处理html_lists列表中的每个字典,获取其间的username键,将其添加到yixue_list列表中。这样,循环结束后,yixue_list列表中就包括了一切学习了青年大学习的姓名。

weixue_list = list(set(list_all) - set(yixue_list))
if not weixue_list:
    print("悉数完结青年大学习")
else:
    print("未完结的名单如下\n", weixue_list)

这段代码运用了 Python 的调集(set)和列表(list)操作。

首要,它运用set将一切用户的姓名转换为调集,去除了重复的姓名。然后,它运用setyixue_list中的姓名转换为调集,再运用set将两个调集的差转换为新的调集。

接着,它查看新调集是否为空,如果为空,则阐明一切用户都现已完结了青年大学习,程序输出一条音讯。不然,它输出未完结的名单,并将其打印出来。

咱们这儿把咱们班级一切同学的姓名都放到一个list_all列表里边。

作用

到这儿,咱们的程序就完结了,回头,我把程序封装一下,咱们就能够直接运用了。

青年大学习自动核对名单详细教程【Python版】

总结

哈哈,这下谁没有学习青年大学习,就能够一下找到了。