正月十五闹元宵,每年的元宵节都是灯会云集,逛灯会,吃小吃,猜灯谜!小编所在的城市,夫子庙可是热闹非凡,尤其是夜景更是让人赏心悦目,夜游秦淮河更是别有一番滋味。古代的时候都是有才子佳人赏月猜灯谜,不知道金陵秦淮胜地是否也成就了很多姻缘。

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

不过大家不用担心,小编为了弥补大家的遗憾,为大家制作了猜灯谜的小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,即可进行可执行文件的封装,最后,小编为大家视频展示一下:

源码获取,后台输入:【灯谜】

汇聚26万Python爱好者

一起学Python

后台输入:【精选好书】,送50本Python好书

点击下面阅读原文 直达 菜鸟Python网站

元宵节在家,我用Python撸一个猜灯谜相关推荐

  1. 服务器关闭重启后客户端socket能自动连接吗_用Python 撸一个 Web 服务器

    从一个 Hello World 程序说起 要编写 Web 服务器,需要用到一个 Python 内置库 socket.Socket 是一个比较抽象的概念,中文叫套接字,它代表一个网络连接.两台计算机之间 ...

  2. 用Python做一个猜数游戏(入门)

    用Python做一个猜数游戏(入门) 目录: 用Python做一个猜数游戏(入门) 第一阶段: 第二阶段: 前言: 各位大佬大家好,我是夕阳样桑,由于最近时间有点紧,所以先做一个小程序.感谢大家的支持 ...

  3. 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2)

    导语 上一期我们带大家完成了魔塔游戏每一层的初始化画面的制作: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(1) 这一期我们会带大家进一步复现我们的魔塔小游戏,主要内容包括英雄类 ...

  4. 元宵节,我们用Scratch来做一个猜灯谜的游戏吧!(文末有福利)

    首先祝大家元宵节快乐! 昨天晚上回到家搞了一个猜灯谜游戏,并且写了PPT教程讲义.今天就将这个案例分享出来,希望大家喜欢. 如果你想要我所有的节假日课程体系可以在微信小商店购买(节假日课程永久持续更新 ...

  5. 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(3)

    导语 上一期我们主要带大家写了勇士类,以及勇士与一些简单的地图元素接触时所触发的事件: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2) 这一期我们会带大家进一步复现我们的魔塔小 ...

  6. 一个猜灯谜的游戏(求解)

    前些日子,我写了一个猜灯谜的游戏,并且做成了安装包,安装包地址:​​​​​​​趣味灯谜游戏安装包(含100关卡)-其他文档类资源-CSDN下载(里面含有100关卡,大家可以玩玩,还有高分记录,此游戏难 ...

  7. 元宵节快乐 | 启明云端邀您一起猜灯谜了

    提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考.同时也用 ...

  8. 用Python写的猜灯谜软件源代码

    主要实现原理:首先通过爬虫获取灯谜的数据,灯谜数据来源于汉谜网,然后用保存为csv或者表格数据,并用用tk做界面进行展示.完整程序代码包请在文末地址下载,程序运行截图: 从汉谜网爬取灯谜程序spide ...

  9. cdt规约报文用程序解析_用 Python 撸一个 Web 服务器第3章:使用 MVC 构建程序

    Todo List 程序介绍 我们将要编写的 Todo List 程序包含四个页面,分别是注册页面.登录页面.首页.编辑页面.以下分别为四个页面的截图. 注册页面: 登录页面: 首页: 编辑页面: 程 ...

最新文章

  1. getOutputStream() has already been called for this response
  2. 图解ARP协议(六)RARP与IARP:被遗忘的兄弟协议
  3. C语言学习笔记(1)--基本概念和函数用法
  4. 在linux环境下安装wiringpi库,wiringPi库的pwm配置及使用说明
  5. java content-length_为什么Content-Length HTTP头字段使用的值不是Java代码中给出的值?...
  6. 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页
  7. unrecognized selector sent to instance问题的解决
  8. 无人驾驶出租车已经在北京全面开放,未来普通人还需要学驾照吗?
  9. sublime怎么运行go_go语言环境搭建+sublime text3(windows环境下)
  10. 51nod1574排列转换
  11. Tricks(十九)—— 获得 list of lists 每一列的最大最小值
  12. pycharm用社区版还是专业版?看下两者的区别吧!
  13. 01 前言/基础设施 - DevOps之路
  14. 聊聊spring data jpa的JpaQueryLookupStrategy
  15. 30 岁的超级玛丽怎样改变了游戏行业?
  16. 2021年上半年国家软考系统分析师论文和案例分析
  17. bzoj4094 luogu3097 最优挤奶
  18. 【VulnHub靶场】——HARRYPOTTER第一部: ARAGOG (1.0.2)
  19. 从有状态应用(Session)到无状态应用(JWT),以及 SSO 和 OAuth2
  20. Python表白代码:“ 星光月夜烟花皆归你,我也归你”

热门文章

  1. Nancy之区域和分部视图的使用
  2. vue rsa加密 php解密,【今日学习】VUE使用RSA加密技术
  3. java-php-python-ssm虚拟银行业务培训游戏计算机毕业设计
  4. HCIA(5)动态路由实验
  5. google 天气预报API
  6. 大悲寺——依教奉行溯正源,良苦用心谁人知?纵然世间一比丘,不退初心证菩提。[转]...
  7. Leetcode 递归题目总结
  8. 灵魂有香气的女子李筱懿:不要用示弱的方式去交往
  9. http方法有哪些?get、post、put、delete,为什么一般只用过get和post?什么时候用put、delete,为什么没用过
  10. h5网页服务器选择,h5制作选择虚拟主机还是服务器