Py学习  »  Python

使用 Python 来猜灯谜,带你闹元宵

AirPython • 4 年前 • 656 次点击  

正月十五闹元宵,每年的元宵节都是灯会云集,逛灯会,吃小吃,猜灯谜!


小编所在的城市,夫子庙可是热闹非凡,尤其是夜景更是让人赏心悦目,夜游秦淮河更是别有一番滋味


古代的时候都是有才子佳人赏月猜灯谜,不知道金陵秦淮胜地是否也成就了很多姻缘。



小编醒醒啦,今年的灯会是肯定看不了啦,只能家里蹲了。由于疫情的影响,导致各个大型的元宵猜灯谜也取消了,大家没有办法出去猜灯谜游玩了。


不过大家不用担心,小编为了弥补大家的遗憾,为大家制作了猜灯谜的小 tk 软件,大家可以在家耍起来。下面就跟随小编一起来看一下。


    

01


    

整体的思路



首先是本程序的整体设计框架流程图,如下图所示:

  • 通过爬虫获取灯谜的数据

  • 保存为 csv 或者表格数据

  • 用tk做界面进行展示



那么怎么获取灯谜数据呢,其实这样的网站有很多,比如这个猜谜语的网站就很不错。



里面有很多谜语的题目,看起来还是很搞笑的,非常有意思。


在家无趣的时候可以猜一猜玩一玩,那么怎么做我们的这个小软件的,巧媳妇难为无米之炊呀,肯定是要有数据才行,于是我们就先爬取数据吧。


这个网上是毕竟简单的,简单分析一下即可:



由于其页面完全是静态网页,大家可以直接从网页源代码中获取得到我们需要的内容。


例如上图中:

  • 左侧是汉谜网的首页,我们可以从中间的网页源代码中获取得到每个谜语的页面链接

  • 右侧的页面则是每个谜语的网页源代码,我们可以在网页源代码中获取谜语的提示、谜面和谜底


有了清晰的爬取过程后,我们就可以进行爬虫程序的编写。


核心源码如下:



由于网页爬取并没有涉及反爬的措施,因此爬虫的程序设计比较简单,我们首先获取的是每个谜语的页面链接地址,然后在每个谜语链接地址中通过 requests 库请求网页的源代码,并通过 beautifulsoup 库来分析网页源代码来爬取每个谜语的提示、谜面和谜底。


    

02


    


上面的代码获取到了数据之后,我们要把数据保存为 csv 格式,保存的方法有很多,最简单的莫过于用 pandas 这个神奇的库,直接把字典转换为 df。非常方便快捷的。


上面的爬虫已经把 dict 转为了 df 数据,然后df可以转成很多数据格式,to_json 和 to_csv 作为常用,这里我们用 to_csv 函数转换即可。



    

03


    


爬虫完毕,数据也好了,等于我们的房子的地基和房子主体钢精水泥都准备妥当了,下面就要开始装修界面了。


我们这里还是用 tk 来搭建,因为毕竟简单方便,也最容易上手,适合菜鸟学习。


小编为大家设计了灯谜的提示。


程序中,小编设计了 4 个按键,分别对应着更换题目,进行验证,显示提示和退出软件,如下图所示:



程序的界面设计如下所示:



主要是背景和按钮控件的布局设计,这些我们前面很多案例都写过,就不一一赘述了。


然后程序开始时,大家只需要点击开始答题,便会显示谜面的内容,大家在 “输入答案” 处输入大家的答案,点击确认便会进行验证,看看大家的答案是否正确

  • 如果错误,便会弹出提示,提醒大家错误,并重新进行输入

  • 如果大家觉得很难没有办法猜出答案时,大家可以点击“显示提示”便可以弹出提示,帮助大家来轻松猜出谜底


部分程序如下图所示:



程序中显示的分别是 “更换题目”、“验证答案” 和 “显示提示” 的程序,更换题目程序中,程序随机从总的谜题中挑选一个谜题,同时将该谜题删除,防止该谜题被重复采用。


则显示上述的每个函数,都通过 tkinter 的 Button 模块进行绑定,大家只需要点击界面上的不同的 Button 按钮,便可以执行不同的函数。


    

04


    

视频展示


以上就是小编为大家介绍的程序界面的设计,下面小编为大家将该软件制作为可执行文件,大家只需要安装 pyinstaller ,然后在该软件的根目录下,执行 pyinstaller main.py,即可进行可执行文件的封装,最后,小编为大家视频展示一下:



公号后台输入:【 灯谜 】获取完整源码。




推荐阅读


如何用 Python 自动化在工作中摸鱼

这款黑科技,不会代码也能玩自动化,高效摸鱼

自动化篇 | 再也不用担心老人们用智能机了




THANDKS
- End -
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54387
 
656 次点击