社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

AirPython • 5 年前 • 795 次点击  

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


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


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



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


不过大家不用担心,小编为了弥补大家的遗憾,为大家制作了猜灯谜的小 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
 
795 次点击