python

肝了一夜,我用Python做了一个垃圾分类器!

2020-11-24  本文已影响0人  菜鸟学python

自2019年7月,上海市率先实现垃圾分类政策开始,很多城市陆续推出垃圾分类的政策,积极响应国家号召,为建设成绿色环保的新城市而努力。预估在2020年底,先行先试的46个重点城市!

前段时间,小编所在的城市蓝鲸也开始了垃圾分类,每次去扔垃圾都在要提前科普查询一下:你这个是什么垃圾!!好麻烦啊,既然是玩Python,不如动手写一个程序进行垃圾分类的学习,肝了一夜终于完成了

01 垃圾分类的数据获取

根据《上海市生活垃圾管理条例》,城市生活垃圾主要分为以下四类:

为了获取垃圾分类数据集,小编经过资料的查询,在码云中小编找到一个垃圾分类数据库,数据库中总共包含了可回收垃圾、有害垃圾、湿垃圾、干垃圾、大件垃圾五种类别,每种类别的垃圾数目如下表所示:


02 垃圾分类学习器设计

1).整体设计思路

垃圾分类学习器包含了学习模块和测试模块两部分,用户可以根据需求对垃圾类别进行学习,在经过一定的学习后,通过测试模块对自己的学习成果进行检验,检验自己能否将垃圾正确分类。

整个学习器的设计过程包含了数据处理、学习模块搭建、测试模块搭建三个部分,接下来小编将对每一个模块进行编程的实现。

2).数据处理
这里使用大名鼎鼎的pandas进行数据处理,通过pd.read_csv可以获取原始表格数据,通过dfdf["class"] == 2中修改参数数字2获取不同种类垃圾的list,到此,就可以获取所有种类的垃圾以及不同种类垃圾的list数据,是不是很简单呢。

3).学习模块搭建
学习模块总共包含了垃圾分类意义的显示,四种常见垃圾的图标显示,以及不同种类垃圾的滑动文本框显示,下面将对程序展开具体介绍。

上面代码是垃圾分类意义的显示和四种常见垃圾的图标显示程序,由程序可以看出,显示设计的思路大致为:

4).垃圾的分类

对于枚举类垃圾的显示则更为复杂,下面会详细介绍:

为了实现对不同类别垃圾的展示学习,需要调用按键回调函数,获取枚举类的信息,再根据获取的信息进行相应类别垃圾信息的显示。

到这里便完成了学习模块界面的设计,显示效果如下:

03 测试模块搭建

对于测试模块,其搭建的思想和垃圾枚举类的搭建类似,但是加入了单选按钮模块,使用用户可以进行自我测试,检测自己学习的成果。

在上面的代码中,可以看到,获取所有的垃圾名字作为枚举类OptionMenu对象创建下拉选项,用户可以数据库中选择垃圾品种进行自我测试。

当选择完垃圾后,对垃圾进行分类,利用单选按钮Radiobutton部件选择垃圾种类,选择完成之后,左键按下选择练习按键,调用ceshi_process函数与数据库中信息进行比对,对结果进行输出。若正确,给予鼓励,否则进行纠正。整体界面显示如下:

最后我们来演示一下,整个过程:

原创真的不容易,从这个点子的产生,到代码的设计,数据的采集,最后进行编写调试,小编辛苦了一个周末才完成。看着自己完成的小工具,也蛮有成就感的!后面我会录制视频放在我们的B站(搜索:菜鸟玩Python)上面,到时源码视频一起奉上!

希望大家都加入到垃圾分类的队伍中来,保护环境从你我做起,让水更清天更蓝,贡献一小份力量吧!

原创不易,辛苦熬夜完成,欢迎大家在留言区吱一声,各位道友记得给个三连哦!(嘿嘿,凡人14集看了嘛~~)

目前wx搜索Python 【菜鸟学Python】排第二,汇聚了30万Python爱好者,累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

上一篇下一篇

猜你喜欢

热点阅读