自2019年7月,上海市率先实现垃圾分类政策开始,很多城市陆续推出垃圾分类的政策,积极响应国家号召,为建设成绿色环保的新城市而努力。预估在2020年底,先行先试的46个重点城市!
前段时间,小编所在的城市蓝鲸也开始了垃圾分类,每次去扔垃圾都在要提前科普查询一下:你这个是什么垃圾!!好麻烦啊,既然是玩Python,不如动手写一个程序进行垃圾分类的学习,肝了一夜终于完成了。
01
垃圾分类的数据获取
根据《上海市生活垃圾管理条例》,城市生活垃圾主要分为以下四类:
为了获取垃圾分类数据集,小编经过资料的查询,在码云中小编找到一个垃圾分类数据库,数据库中总共包含了可回收垃圾、有害垃圾、湿垃圾、干垃圾、大件垃圾五种类别,每种类别的垃圾数目如下表所示:
02
垃圾分类学习器设计
垃圾分类学习器包含了学习模块和测试模块两部分,用户可以根据需求对垃圾类别进行学习,在经过一定的学习后,通过测试模块对自己的学习成果进行检验,检验自己能否将垃圾正确分类。
整个学习器的设计过程包含了数据处理、学习模块搭建、测试模块搭建三个部分,接下来小编将对每一个模块进行编程的实现。
这里使用大名鼎鼎的pandas进行数据处理,通过pd.read_csv可以获取原始表格数据,通过dfdf["class"] == 2中修改参数数字2获取不同种类垃圾的list,到此,就可以获取所有种类的垃圾以及不同种类垃圾的list数据,是不是很简单呢。
学习模块总共包含了垃圾分类意义的显示,四种常见垃圾的图标显示,以及不同种类垃圾的滑动文本框显示,下面将对程序展开具体介绍。
上面代码是垃圾分类意义的显示和四种常见垃圾的图标显示程序,由程序可以看出,显示设计的思路大致为:
4).垃圾的分类
对于枚举类垃圾的显示则更为复杂,下面会详细介绍:
为了实现对不同类别垃圾的展示学习,需要调用按键回调函数,获取枚举类的信息,再根据获取的信息进行相应类别垃圾信息的显示。
到这里便完成了学习模块界面的设计,显示效果如下:
03
测试模块搭建
对于测试模块,其搭建的思想和垃圾枚举类的搭建类似,但是加入了单选按钮模块,使用用户可以进行自我测试,检测自己学习的成果。
在上面的代码中,可以看到,获取所有的垃圾名字作为枚举类OptionMenu对象创建下拉选项,用户可以数据库中选择垃圾品种进行自我测试。
当选择完垃圾后,对垃圾进行分类,利用单选按钮Radiobutton部件选择垃圾种类,选择完成之后,左键按下选择练习按键,调用ceshi_process函数与数据库中信息进行比对,对结果进行输出。若正确,给予鼓励,否则进行纠正。整体界面显示如下:
最后我们来演示一下,整个过程:
后面我会录制视频放在我们的B站(搜索:菜鸟玩Python)上面,到时源码视频一起奉上!
希望大家都加入到垃圾分类的队伍中来,保护环境从你我做起,让水更清天更蓝,贡献一小份力量吧!
Python图书推荐
1 ▊《疯狂Python讲义》
李刚 编著
(扫码获取本书详情)
2 ▊《看漫画学Python:有趣、有料、好玩、好用(全彩版)》
关东升 著,赵大羽 绘
(扫码获取本书详情)
3 ▊《网络工程师的Python之路:网络运维自动化实战》
王印 著
(扫码获取本书详情)
4 ▊《Python3网络爬虫宝典》
韦世东 著
(扫码获取本书详情)
5 ▊《对比Excel,轻松学习Python数据分析》
张俊红 著
(扫码获取本书详情)
6 ▊《Python数据可视化之美:专业图表绘制指南(全彩)》
张杰著
(扫码获取本书详情)
7 ▊《漫画算法:小灰的算法之旅(Python篇)》
魏梦舒 著
(扫码获取本书详情)
如果喜欢本文
欢迎 在看丨留言丨分享至朋友圈 三连
热文推荐
本文分享自 博文视点Broadview 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!