Python语言之用Python做垃圾分类器
小职 2020-11-16 来源 : 阅读 790 评论 0

摘要:本篇用Python写了一个程序进行垃圾分类的学习,希望 对Python的学习有所帮助。

本篇用Python写了一个程序进行垃圾分类的学习,希望 对Python的学习有所帮助。

Python语言之用Python做垃圾分类器

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

 

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

 

01、垃圾分类的数据获取

 Python语言之用Python做垃圾分类器

 

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

 

可回收物,是指废纸张、废塑料、废玻璃制品、废金属、废织物等适宜回收、可循环利用的生活废弃物;

有害垃圾,是指废电池、废灯管、废药品、废油漆及其容器等对人体健康或者自然环境造成直接或者潜在危害的生活废弃物;

湿垃圾,即易腐垃圾,是指食材废料、剩菜剩饭、过期食品、瓜皮果核、花卉绿植、中药药渣等易腐的生物质生活废弃物;

干垃圾,即其它垃圾,是指除可回收物、有害垃圾、湿垃圾以外的其它生活废弃物。

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

 Python语言之用Python做垃圾分类器

 

 

02、垃圾分类学习器设计

1).整体设计思路

 

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

 

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

 Python语言之用Python做垃圾分类器

 

 

2).数据处理

 

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

 

 Python语言之用Python做垃圾分类器

 

3).学习模块搭建

 

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

 Python语言之用Python做垃圾分类器

 

 

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

 

首先在root主窗口中建立相应的tk.Frame,并确定其在主窗口的位置;

然后利用tk.Label标签显示文字信息,镶嵌在tk.Frame的具体位置进行显示

对于图片的显示却不太简单,需要在root主窗口中建立新的tk.Canvas,并根据设计好的大小对图像进行Resize操作,canvas2.create_image创建图片才得以显示;

4).垃圾的分类

 

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

Python语言之用Python做垃圾分类器 

 

 

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

 

我们先建立了垃圾类的list,通过OptionMenu部件进行枚举类的显示;

为了实现对类别的实时更新,调用按键的回调函数garbage_process,对scrolledtext.ScrolledText滚动文本框进行写入;

这里需要注意的是,如果将scrolledtext.ScrolledText安放在root主界面上,会产生位置错位的情况;

小编这里新建了canvas3画布,将scrolledtext.ScrolledText放在了canvas3画布进行显示;

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

 Python语言之用Python做垃圾分类器

 

 

03、测试模块搭建

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

 

 Python语言之用Python做垃圾分类器

 

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

 

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

 

 Python语言之用Python做垃圾分类器

 

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

 Python语言之用Python做垃圾分类器

 

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

 

保护环境从你我做起,让水更清天更蓝,贡献一小份力量吧!




关注“职坐标在线”(Zhizuobiao_Online)公众号,免费获取最新技术干货教程资源哦

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程