pyglet版本(pyinstaller python版本)
python可以应用在哪些领域
① Web开发:众多大型网站均为 python 开发。
豆瓣:公司几乎所有的业务均是通过 python 开发的
知乎:国内最大的问答社区,通过 python 开发(Quora) 春雨医生:国内知名的在线医疗网站是用 python 开发的
还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等公司都在使用 python 完成各种各样的任务。
国外的网站:
谷歌:Google App Engine、code.Google.com、Google earth、谷歌爬虫、Google 广告等项目都在大量使用 python 开发
CIA:美国中情局网站就是用 python 开发的
NASA:美国航天局(NASA)大量使用 python 进行数据分析和运算
YouTube:世界上最大的视频网站 YouTube 就是 python 开发的
Dropbox:美国最大的在线云存储网站,全部用 python 实现,每天网站处理 10 亿个文件的上传和下载
Instagram:美国最大的图片分享社交网站,每天超过 3 千万张照片被分享,全部用 python 开发
Facebook:大量的基础库均通过 python 实现的
Redhat:世界上最流行的 Linux 发新版本中的 yum 包管理工具就是用 python 开发的
② 爬虫:
现在是大数据时代,爬虫是属于运营的比较多的一个场景吧,比如谷歌的爬虫早期就是用跑Python写的,如果你对采集数据、处理数据感兴趣,爬虫工程师将会是一个很好的选择。
③ 数据分析:
一般我们用爬虫爬到了大量的数据之后,我们需要处理数据用来分析,不然爬虫白爬了,我们最终的目的就是分析数据,在这方面关于数据分析的库也是非常的丰富的,各种图形分析图等都可以做出来。也是非常的方便,其中诸如Seaborn这样的可视化库,能够仅仅使用一两行就对数据进行绘图,而利Pandas和Numpy、scipy则可以简单地对大量数据进行筛选、回归等计算。
④ 人工智能:
Python近年来被人们熟知的主要原因就是人工智能领域的兴起。
Python在科学计算领域一直有着较好的声誉,其简洁清晰的语法以及丰富的计算工具,深受此领域开发者喜爱。
python 由于具有编写简单、改动少等特点。特别适合用在机器学习方向。并且提供了丰富的库。减少了学习人工智能的成本。
如何用Python写一个贪吃蛇AI
前言
这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过。但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了。 问题的关键在于,图片中的贪吃蛇真的很贪吃XD,它把矩形中出现的食物吃了个遍, 然后华丽丽地把整个矩形填满,真心是看得赏心悦目。作为一个CSer, 第一个想到的是,这东西是写程序实现的(因为,一般人干不出这事。 果断是要让程序来干的)第二个想到的是,写程序该如何实现,该用什么算法? 既然开始想了,就开始做。因为Talk is cheap,要show me the code才行。 (从耗子叔那学来的)
开始之前,让我们再欣赏一下那只让人涨姿势的贪吃蛇吧:( 如果下面的动态图片浏览效果不佳的话,可以右键保存下来查看)
语言选择
Life is short, use python! 所以,根本就没多想,直接上python。
最初版本
先让你的程序跑起来
首先,我们第一件要做的就是先不要去分析这个问题。 你好歹先写个能运行起来的贪吃蛇游戏,然后再去想AI部分。这个应该很简单, cc++也就百来行代码(如果我没记错的话。不弄复杂界面,直接在控制台下跑), python就更简单了,去掉注释和空行,5、60行代码就搞定了。而且,最最关键的, 这个东西网上肯定写滥了,你没有必要重复造轮子, 去弄一份来按照你的意愿改造一下就行了。
简单版本
我觉得直接写perfect版本不是什么好路子。因为perfect版本往往要考虑很多东西, 直接上来就写这个一般是bug百出的。所以, 一开始我的目标仅仅是让程序去控制贪吃蛇运动,让它去吃食物,仅此而已。 现在让我们来陈述一下最初的问题:
1
2
在一个矩形中,每一时刻有一个食物,贪吃蛇要在不撞到自己的条件下,
找到一条路(未必要最优),然后沿着这条路运行,去享用它的美食
我们先不去想蛇会越来越长这个事实,问题基本就是,给你一个起点(蛇头)和一个终点( 食物),要避开障碍物(蛇身),从起点找到一条可行路到达终点。 我们可以用的方法有:
BFS
DFS
A*
只要有选择,就先选择最简单的方案,我们现在的目标是要让程序先跑起来, 优化是后话。so,从BFS开始。我们最初将蛇头位置放入队列,然后只要队列非空, 就将队头位置出队,然后把它四领域内的4个点放入队列,不断地循环操作, 直到到达食物的位置。这个过程中,我们需要注意几点:1.访问过的点不再访问。 2.保存每个点的父结点(即每个位置是从哪个位置走到它的, 这样我们才能把可行路径找出来)。3.蛇身所在位置和四面墙不可访问。
通过BFS找到食物后,只需要让蛇沿着可行路径运动即可。这个简单版本写完后, 贪吃蛇就可以很欢快地运行一段时间了。看图吧:(不流畅的感觉来自录屏软件@_@)
为了尽量保持简单,我用的是curses模块,直接在终端进行绘图。 从上面的动态图片可以看出,每次都单纯地使用BFS,最终有一天, 贪吃蛇会因为这种不顾后果的短视行为而陷入困境。 而且,即使到了那个时候,它也只会BFS一种策略, 导致因为当前看不到目标(食物),认为自己这辈子就这样了,破罐子破摔, 最终停在它人生中的某一个点,不再前进。(我好爱讲哲理XD)
BFS+Wander
上一节的简单版本跑起来后,我们认识到,只教贪吃蛇一种策略是不行的。 它这么笨一条蛇,你不多教它一点,它分分钟就会挂掉的。 所以,我写了个Wander函数,顾名思义,当贪吃蛇陷入困境后, 就别让它再BFS了,而是让它随便四处走走,散散心,思考一下人生什么的。 这个就好比你困惑迷茫的时候还去工作,效率不佳不说,还可能阻碍你走出困境; 相反,这时候你如果放下手中的工作,停下来,出去旅个游什么的。回来时, 说不定就豁然开朗,土地平旷,屋舍俨然了。
Wander函数怎么写都行,但是肯定有优劣之分。我写了两个版本,一个是在可行的范围内, 朝随机方向走随机步。也就是说,蛇每次运动的方向是随机出来的, 总共运动的步数也是随机的。Wander完之后,再去BFS一下,看能否吃到食物, 如果可以那就皆大欢喜了。如果不行,说明思考人生的时间还不够,再Wander一下。 这样过程不断地循环进行。可是就像“随机过程随机过”一样,你“随机Wander就随机挂”。 会Wander的蛇确实能多走好多步。可是有一天,它就会把自己给随机到一条死路上了。 陷入困境还可以Wander,进入死胡同,那可没有回滚机制。所以, 第二个版本的Wander函数,我就让贪吃蛇贪到底。在BFS无解后, 告诉蛇一个步数step(随机产生step),让它在空白区域以S形运动step步。 这回运动方向就不随机了,而是有组织有纪律地运动。先看图,然后再说说它的问题:
没错,最终还是挂掉了。S形运动也是无法让贪吃蛇避免死亡的命运。 贪吃蛇可以靠S形运动多存活一段时间,可是由于它的策略是:
1
2
3
4
5
? ?
while 没有按下ESC键:
if 蛇与食物间有路径:
走起,吃食物去
else:
Wander一段时间
? ?
问题就出在蛇发现它自己和食物间有路径,就二话不说跑去吃食物了。 它没有考虑到,你这一去把食物给吃了后形成的局势(蛇身布局), 完全就可能让你挂掉。(比如进入了一个自己蛇身围起来的封闭小空间)
so,为了能让蛇活得久一些,它还要更高瞻远瞩才行。
高瞻远瞩版本
我们现在已经有了一个比较低端的版本,而且对问题的认识也稍微深入了一些。 现在可以进行一些比较慎密和严谨的分析了。首先,让我们罗列一些问题: (像头脑风暴那样,想到什么就写下来即可)
蛇和食物间有路径直接就去吃,不可取。那该怎么办?
如果蛇去吃食物后,布局是安全的,是否就直接去吃?(这样最优吗?)
怎样定义布局是否安全?
蛇和食物之间如果没有路径,怎么办?
最短路径是否最优?(这个明显不是了)
那么,如果布局安全的情况下,最短路径是否最优?
除了最短路径,我们还可以怎么走?S形?最长?
怎么应对蛇身越来越长这个问题?
食物是随机出现的,有没可能出现无解的布局?
暴力法(brute force)能否得到最优序列?(让贪吃蛇尽可能地多吃食物)
只要去想,问题还挺多的。这时让我们以面向过程的思想,带着上面的问题, 把思路理一理。一开始,蛇很短(初始化长度为1),它看到了一个食物, 使用BFS得到矩形中每个位置到达食物的最短路径长度。在没有蛇身阻挡下, 就是曼哈顿距离。然后,我要先判断一下,贪吃蛇这一去是否安全。 所以我需要一条虚拟的蛇,它每次负责去探路。如果安全,才让真正的蛇去跑。 当然,虚拟的蛇是不会绘制出来的,它只负责模拟探路。那么, 怎么定义一个布局是安全的呢? 如果你把文章开头那张动态图片中蛇的销魂走位好好的看一下, 会发现即使到最后蛇身已经很长了,它仍然没事一般地走出了一条路。而且, 是跟着蛇尾走的!嗯,这个其实不难解释,蛇在运动的过程中,消耗蛇身, 蛇尾后面总是不断地出现新的空间。蛇短的时候还无所谓,当蛇一长, 就会发现,要想活下来,基本就只能追着蛇尾跑了。在追着蛇尾跑的过程中, 再去考虑能否安全地吃到食物。(下图是某次BFS后,得到的一个布局, 0代表食物,数字代表该位置到达食物的距离,+号代表蛇头,*号代表蛇身, -号代表蛇尾,#号代表空格,外面的一圈#号代表围墙)
1
2
3
4
5
6
7
? ?
# # # # # # #
# 0 1 2 3 4 #
# 1 2 3 # 5 #
# 2 3 4 - 6 #
# 3 + * * 7 #
# 4 5 6 7 8 #
# # # # # # #
? ?
经过上面的分析,我们可以将布局是否安全定义为蛇是否可以跟着蛇尾运动, 也就是蛇吃完食物后,蛇头和蛇尾间是否存在路径,如果存在,我就认为是安全的。
OK,继续。真蛇派出虚拟蛇去探路后,发现吃完食物后的布局是安全的。那么, 真蛇就直奔食物了。等等,这样的策略好吗?未必。因为蛇每运动一步, 布局就变化一次。布局一变就意味着可能存在更优解。比如因为蛇尾的消耗, 原本需要绕路才能吃到的食物,突然就出现在蛇眼前了。所以,真蛇走一步后, 更好的做法是,重新做BFS。然后和上面一样进行安全判断,然后再走。
接下来我们来考虑一下,如果蛇和食物之间不存在路径怎么办? 上文其实已经提到了做法了,跟着蛇尾走。只要蛇和食物间不存在路径, 蛇就一直跟着蛇尾走。同样的,由于每走一步布局就会改变, 所以每走一步就重新做BFS得到最新布局。
好了,问题又来了。如果蛇和食物间不存在路径且蛇和蛇尾间也不存在路径, 怎么办?这个我是没办法了,选一步可行的路径来走就是了。还是一个道理, 每次只走一步,更新布局,然后再判断蛇和食物间是否有安全路径; 没有的话,蛇头和蛇尾间是否存在路径;还没有,再挑一步可行的来走。
上面列的好几个问题里都涉及到蛇的行走策略,一般而言, 我们会让蛇每次都走最短路径。这是针对蛇去吃食物的时候, 可是蛇在追自己的尾巴的时候就不能这么考虑了。我们希望的是蛇头在追蛇尾的过程中, 尽可能地慢。这样蛇头和蛇尾间才能腾出更多的空间,空间多才有得发展。 所以蛇的行走策略主要分为两种:
1
2
? ?
1. 目标是食物时,走最短路径
2. 目标是蛇尾时,走最长路径
? ?
那第三种情况呢?与食物和蛇尾都没路径存在的情况下, 这个时候本来就只是挑一步可行的步子来走,最短最长关系都不大了。 至于人为地让蛇走S形,我觉得这不是什么好策略,最初版本中已经分析过它的问题了。 (当然,除非你想使用最最无懈可击的那个版本,就是完全不管食物, 让蛇一直走S,然后在墙边留下一条过道即可。这样一来, 蛇总是可以完美地把所有食物吃完,然后占满整个空间,可是就很boring了。 没有任何的意思)
上面还提到一个问题:因为食物是随机出现的,有没可能出现无解的局面? 答案是:有。我运行了程序,然后把每一次布局都输出到log,发现会有这样的情况:
1
2
3
4
5
6
7
? ?
# # # # # # #
# * * * * * #
# * * - 0 * #
# * * # + * #
# * * * * * #
# * * * * * #
# # # # # # #
? ?
其中,+号是蛇头,-号是蛇尾,*号是蛇身,0是食物,#号代表空格,外面一圈# 号代表墙。这个布局上,食物已经在蛇头面前了,可是它能吃吗?不能! 因为它吃完食物后,长度加1,蛇头就会把0的位置填上,布局就变成:
1
2
3
4
5
6
7
? ?
# # # # # # #
# * * * * * #
# * * - + * #
# * * # * * #
# * * * * * #
# * * * * * #
# # # # # # #
? ?
此时,由于蛇的长度加1,蛇尾没有动,而蛇头被自己围着,挂掉了。可是, 我们却还有一个空白的格子#没有填充。按照我们之前教给蛇的策略, 面对这种情况,蛇头就只会一直追着蛇尾跑,每当它和食物有路径时, 它让虚拟的蛇跑一遍发现,得到的新布局是不安全的,所以不会去吃食物, 而是选择继续追着蛇尾跑。然后它就这样一直跑,一直跑。死循环, 直到你按ESC键为止。
由于食物是随机出现的,所以有可能出现上面这种无解的布局。当然了, 你也可以得到完满的结局,贪吃蛇把整个矩形都填充满。
上面的最后一个问题,暴力法是否能得到最优序列。从上面的分析看来, 可以得到,但不能保证一定得到。
最后,看看高瞻远瞩的蛇是怎么跑的吧:
矩形大小10*20,除去外面的边框,也就是8*18。Linux下录完屏再转成GIF格式的图片, 优化前40多M,真心是没法和Windows的比。用下面的命令优化时, 有一种系统在用生命做优化的感觉:
Shell
1
? ?
convert output.gif -fuzz 10% -layers Optimize optimised.gif
? ?
最后还是拿到Windows下用AE,三下五除二用图片序列合成的动态图片 (记得要在format options里选looping,不然图片是不会循环播放的)
Last but not least
如果对源代码感兴趣,请戳以下的链接:?Code goes here
另外,本文的贪吃蛇程序使用了curses模块, 类Unix系统都默认安装的,使用Windows的童鞋需要安装一下这个模块, 送上地址:?需要curses请戳我
以上的代码仍然可以继续改进(现在加注释不到300行,优化一下可以更少), 也可用pygame或是pyglet库把界面做得更加漂亮,Enjoy!
你都用Python 来做什么?
当我知道可以做这些之后,我特别想会。因为论文查阅、答案确认查询;想知道豆瓣8分以上电影,或者穿越类的电影、处理工资数据考核表等。
可以干什么
1、上学吧答案神器 主要实现的是无限制获取上学吧网站上的题目答案(绕过 IP 限制),并实现了自动识别验证码,只用输入某个题目的网址,即可一键获取答案,速度非常快。「想要哈哈,自己或者给孩子辅导作业必备啊?」
2、抓取某系统内全部学生姓名学号及选课信息
3、扫描研究生系统上的弱密码用户、模拟登录图书馆系统并自动续借
4、给钓鱼网站批量提交垃圾信息 经常会收到含有钓鱼网站链接的短信的,一般都是盗取 QQ 密码的偏多,其实可以使用 Python 来批量给对方的服务器提交垃圾数据(需要先抓包),这样骗子看到信息之后就不知道哪些是真的哪些是假的了,说不定可以解救一部分填了密码的同学。
5、网易云音乐批量下载 可以批量下载网易云音乐热歌榜的歌曲,可以自己设定数量,速度非常快。
6、批量下载读者杂志某一期的全部文章
7、 获取城市PM2.5浓度和排名
8、爬取某网商品价格信息
你都用 Python 来做什么?
那Python 作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐。那么,Python 的应用领域有哪些呢?
Python 的应用领域非常广泛,几乎所有大中型互联网企业都在使用 Python 完成各种各样的任务,例如国外的 Google、Youtube、Dropbox,国内的百度、新浪、搜狐、腾讯、阿里、网易、淘宝、知乎、豆瓣、汽车之家、美团等等。概括起来,Python 的应用领域主要有如下几个。
Web应用开发
Python 经常被用于 Web 开发,尽管目前 PHP、JS 依然是 Web 开发的主流语言,但 Python 上升势头更劲。尤其随着 Python 的 Web 开发框架逐渐成熟(比如 Django、flask、TurboGears、web2py 等等),程序员可以更轻松地开发和管理复杂的 Web 程序。例如,通过 mod_wsgi 模块,Apache 可以运行用 Python 编写的 Web 程序。Python 定义了 WSGI 标准应用接口来协调 HTTP 服务器与基于 Python 的 Web 程序之间的通信。举个最直观的例子,全球最大的搜索引擎 Google,在其网络搜索系统中就广泛使用 Python 语言。另外,我们经常访问的集电影、读书、音乐于一体的豆瓣网(如图 1 所示),也是使用 Python 实现的。
图1用Python实现的豆瓣网
不仅如此,全球最大的视频网站 Youtube 以及 Dropbox(一款网络文件同步工具)也都是用 Python 开发的。
自动化运维
很多操作系统中,Python 是标准的系统组件,大多数 Linux 发行版以及 NetBSD、OpenBSD 和 Mac OS X 都集成了 Python,可以在终端下直接运行 Python。有一些 Linux 发行版的安装器使用 Python 语言编写,例如 Ubuntu 的 Ubiquity 安装器、Red Hat Linux 和 Fedora 的 Anaconda 安装器等等。另外,Python 标准库中包含了多个可用来调用操作系统功能的库。例如,通过 pywin32 这个软件包,我们能访问 Windows 的 COM 服务以及其他 Windows API;使用 IronPython,我们能够直接调用 .Net Framework。通常情况下,Python 编写的系统管理脚本,无论是可读性,还是性能、代码重用度以及扩展性方面,都优于普通的 shell 脚本。
人工智能领域
人工智能是项目非常火的一个研究方向,如果要评选当前最热、工资最高的 IT 职位,那么人工智能领域的工程师最有话语权。而 Python 在人工智能领域内的机器学习、神经网络、深度学习等方面,都是主流的编程语言。可以这么说,基于大数据分析和深度学习发展而来的人工智能,其本质上已经无法离开 Python 的支持了,原因至少有以下几点:
目前世界上优秀的人工智能学习框架,比如 Google 的 TransorFlow(神经网络框架)、FaceBook 的 PyTorch(神经网络框架)以及开源社区的 Karas 神经网络库等,都是用 Python 实现的;微软的 CNTK(认知工具包)也完全支持 Python,并且该公司开发的 VS Code,也已经把 Python 作为第一级语言进行支持。Python 擅长进行科学计算和数据分析,支持各种数学运算,可以绘制出更高质量的 2D 和 3D 图像。总之,AI 时代的来临,使得 Python 从众多编程语言中脱颖而出,Python 作为 AI 时代头牌语言的位置,基本无人可撼动!最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
网路爬虫
Python 语言很早就用来编写网络爬虫。Google 等搜索引擎公司大量地使用 Python 语言编写网络爬虫。从技术层面上将,Python 提供有很多服务于编写网络爬虫的工具,例如 urllib、Selenium 和 BeautifulSoup 等,还提供了一个网络爬虫框架 Scrapy。
科学计算
自 1997 年,NASA 就大量使用 Python 进行各种复杂的科学运算。并且,和其它解释型语言(如 shell、js、PHP)相比,Python 在数据分析、可视化方面有相当完善和优秀的库,例如 NumPy、SciPy、Matplotlib、pandas 等,这可以满足 Python 程序员编写科学计算程序。
游戏开发
很多游戏使用 C++ 编写图形显示等高性能模块,而使用 Python 或 Lua 编写游戏的逻辑。和 Python 相比,Lua 的功能更简单,体积更小;而 Python 则支持更多的特性和数据类型。比如说,国际上指明的游戏 Sid Meier's Civilization(文明,如图 2 所示)就是使用 Python 实现的。
图2Python开发的游戏
除此之外,Python 可以直接调用 Open GL 实现 3D 绘制,这是高性能游戏引擎的技术基础。事实上,有很多 Python 语言实现的游戏引擎,例如 Pygame、Pyglet 以及 Cocos 2d 等。以上也仅是介绍了 Python 应用领域的“冰山一角”,例如,还可以利用 Pygame 进行游戏编程;用 PIL 和其他的一些工具进行图像处理;用 PyRo 工具包进行机器人控制编程,等等。有兴趣的读者,可自行搜索资料进行详细了解。
人机界面属于哪个库
Python库之图形用户界面
Python库之游戏开发
Python库之虚拟现实
Python库之图形艺术
二、Python库之图形用户界面
2.1 PyQt5
提供了创建Qt5程序的Python API接口
Qt是非常成熟的跨平台桌面应用开发系统,完备GUI
推荐的Python GUI开发第三方库
2.2 wxPython
提供了专用于Python的跨平台GUI开发框架
理解数据类型与索引的关系,操作索引即操作数据
Python最主要的数据分析功能库,基于Numpy开发
import wx
app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Hello World") frame.Show(True)
app.MainLoop()
2.3 PyGObject
提供了整合GTK+、WebKitGTK+等库的功能
GTK+:跨平台的一种用户图形界面GUI框架
实例:Anaconda采用该库构建GUI
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
window = Gtk.Window(title="Hello World")
window.show()
window.connect("destroy", Gtk.main_quit)
Gtk.main()
三、Python库之游戏开发
3.1 PyGame
提供了基于SDL的简单游戏开发功能及实现引擎
理解游戏对外部输入的响应机制及角色构建和交互机制
Python游戏入门最主要的第三方库
3.2 Panda3D
Panda3D: 开源、跨平台的3D渲染和游戏开发库,
一个3D游戏引擎,提供Python和C++两种接口
支持很多先进特性:法线贴图、光泽贴图、卡通渲染等
由迪士尼和卡尼基梅隆大学共同开发
3.3 cocos2d
ocos2d: 构建2D游戏和图形界面交互式应用的框架,
提供了基于OpenGL的游戏开发图形渲染功能
支持GPU加速,采用树形结构分层管理游戏对象类型
适用于2D专业级游戏开发
四、Python库之虚拟现实
4.1 VR Zero
提供大量与VR开发相关的功能
针对树莓派的VR开发库,支持设备小型化,配置简单化
非常适合初学者实践VR开发及应用
4.2 pyovr
针对Oculus VR设备的Python开发库
基于成熟的VR设备,提供全套文档,工业级应用设备
Python+虚拟现实领域探索的一种思路
4.3 Vizard
专业的企业级虚拟现实开发引擎
提供详细的官方文档
支持多种主流的VR硬件设备,具有一定通用性
五、Python库之图形艺术
5.1 Quads
对图片进行四分迭代,形成像素风
可以生成动图或静图图像
简单易用,具有很高展示度
5.2 ascii_art
将普通图片转为ASCII艺术风格
输出可以是纯文本或彩色文本
可采用图片格式输出
5.3 turtle
六、单元小结
6.1 从人机交互到艺术设计
PyQt5、wxPython、PyGObject
PyGame、Panda3D、cocos2d
VR Zero、pyovr、Vizard
Quads、ascii_art、turtle
相关资源:covid19:通过使用Python和Plotly构建的交互式图表探索加拿大的CO...
文章知识点与官方知识档案匹配
Python入门技能树首页概览
215912 人正在系统学习中
点击阅读全文
打开CSDN APP,看更多技术内容
python人机交互设计_063 Python必备库-从人机交互到艺术设计
Vizard: 基于Python的通用VR开发引擎, 专业的企业级虚拟现实开发引擎 提供详细的官方文档 支持多种主流的VR硬件设备,具有一定通用性 五、Python库之图形艺术 5.1 Quads Quads: 迭...
继续访问
制作交互式数据可视化图表,只需要一个Python库就能实现!_翎子生。的...
Python第三方库中我们最常用的可视化库是 pandas,matplotlib,pyecharts, 当然还有 Tableau,另外最近在学习过程中发现另一款可视化神器-Plotly,它是一款用来做数据分析和可视化的在线平台,功能非常强大, 可以在线绘制很多图形比如条形图、散点...
继续访问
人机界面
Keras实施3D-VAE 配套 python 3.6 tensorflow-gpu 1.13.1 matplotlib 3.3.2 scikit-image 0.17.2 数据集 出于空间考虑,我们使用数据集,在此存储库中,我们仅在椅子类(03001627)的.binvox文件中提供体积数据,用于训练和测试VAE,该文件位于./dataset下。 如果您想使用许多其他不同类型的对象进行训练,则可以在上面的网站上找到完整的数据集,它需要一个帐户来下载它们。 此外,斯坦福大学还在以下提供相同的数据集: : ,方便下载。 体积数据在ShapeNetVox32.tgz下,图像数据在ShapeNetRendering.tgz下。 体积数据 椅子类中有6778个元素,完整的对象位于/dataset/03001627 。 我们还将其分为训练集和测试集, /dataset/03001627_t
python人机交互界面设计_Python-Tkinter图形化界面设计(详细教程 )
声明:本篇文章为转载自,在原作者的基础上添加目录导航,旨在帮助大家以更高效率进行学习和开发。Python-Tkinter 图形化界面设计(详细教程)本文目录一.图形化界面设计的基本理解当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单、按钮等图形化元...
继续访问
python编写交互界面设计_使用python制作ArcGIS插件(4)界面交互
这是在插件执行交互性操作的时候所需要用到的。由于原始的python是没有界面的,所以,这些元素就全靠pythonaddins封装了。 其他的界面类,如按钮类、组合框等,这些都是固定的设计。还有一部分是工具类型,如操作时的鼠标指针,各种的鼠标和...
继续访问
9.4 Python 从人机交互到艺术设计(图形用户界面/游戏开发/虚拟现实/图形...
本文内容为北京理工大学Python慕课课程的课程讲义, 将其整理为OneNote笔记同时添加了本人上课时的课堂笔记, 且主页中的思维导图就是根据课件内容整理而来, 为了方便大家和自己查看,特将此上传到CSDN博文中, 源文件已经上传到我的资源中,...
继续访问
python人机交互界面
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录1.加入背景图片显示界面代码2.设置背景颜色代码 提示:以下是本篇文章正文内容,下面案例可供参考 1.加入背景图片显示界面代码 代码如下(示例): import tkinter as tk root = tk.Tk() root.title('0-1背包实例数据集算法平台') root.geometry('600x340') # 增加背景图片 photo = tk.PhotoImage(file="D:\study\python.
继续访问
Pygame介绍以及下载
一、介绍 Pygame是一个利用SDL库实现的模块。SDL全称Simple DirectMedia Layer,是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要相同或者相似的代码就能开发出多个平台,比如Linux、Windows、Mac OSX等的应用程序。 二、下载 Pygame官网:...
继续访问
Dragonboard 410c Python 交互设计——PyQt环境搭建_ANDYMFC_No1的博客...
Python是一个非常容易上手和使用的语言,非常适合开发者快速的搭建和实现自己ideal原型,在开发中,可以通过Python快速的搭建自己的想法,并且后续很容易使用其他更高性能的语言进行局部或者全局的优化。UI交互设计是开发中常见的一个问题,今天...
继续访问
python如何实现界面交互设计_python图形化界面设计(wxpython)三全面介绍...
窗口和对话框的交互 高级控件 表格控件 高级列表控件 树形控件 树表控件 定时器控件 WxPython库中的高级功能 主要使用wxPython(最成熟的跨平台python GUI工具包) 前戏:基础了解 importwxclass MyFrame(wx.Frame): #创建自定义Frame def...
继续访问
python人机交互界面设计_python_GUI页面开发
GUI:人机交互图形化界面,图形页面窗口,Windows系统就是一个庞大的GUI界面,比命令行更加让人得以接受,使用更加简便在python中的GUI界面是由tkinter提供的,使用前需导入变量 = tk.Tk():创建一个窗口,将他实例化变量 = geometry('长宽'):设置窗口的长宽页面开发的最小内容:1.导入tkinter模块2.创建主窗口对象3.将主窗口对象加入消息循环importt...
继续访问
python安装pygame失败_python下PyGame的下载与安装过程及遇到问题
1.去官网下载PyGame注意:要下载对应版本的包其中,如果python为以下版本:(cp36就是python3.6的意思)2. .exe文件直接安装.whl文件启动doc命令安装:在文件所在位置打开doc界面:(win10直接在当前文件夹空白处按住shift,右键打开powershell窗口)输入以下指令安装:pip install pygame-1.9.3-cp36-cp36m-win...
继续访问
基于Python的学生生活信息交互平台的设计和实现_天行IT科技馆的博客-CS...
《基于Python的学生生活信息交互平台的设计和实现》该项目采用技术Python的django框架、mysql数据库 ,项目含有源码、论文、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等 软件开发环境及开发工具: ...
继续访问
...python做交互式界面?_程序员小猴紫的博客_python交互...
界面设计:PyQt模块,这个界面个人感觉是python中界面设计最好用的模块,既可以使用窗口设计界面,又能使用CSS样式。 2.界面设计 2.1打开PyQt designer界面 三步成界面,是不是很简单,哈哈,你没看错,设计一个界面就是这么的简单,当然我没有...
继续访问
最新发布 python互联网程序设计GUI程序设计和网络程序设计(人机互动聊天软件)
(2)必备功能:服务器客户端之间能简单发送和接收文件。至少应有序列化和反序列化功 能。收发双方,应打印显示发送或接收的原始对象的信息(非字节串)。(1)必备功能:要求服务端代码具有一定的智能,能够根据不完整的问题识别客户端真正 要问的问题。如客户输入how old, 服务器能回答年龄。(1)测试TCP连接是否成功。(2)试接收信息是否完整。(4)测试其他无关键词汇。(5)测试文件发送与接收。(3)测试智能回复聊天。(1)发送信息的函数。
继续访问
python人机交互界面设计_063 Python必备库-从人机交互到艺术设计
一、概述Python库之图形用户界面Python库之游戏开发Python库之虚拟现实Python库之图形艺术二、Python库之图形用户界面2.1 PyQt5提供了创建Qt5程序的Python API接口Qt是非常成熟的跨平台桌面应用开发系统,完备GUI推荐的Python GUI开发第三方库2.2 wxPython提供了专用于Python的跨平台GUI开发框架理解数据类型与索引的关系,操作索引即操...
继续访问
python编写人机交互界面_中科院科研项目:人机交互—自然人机语音交互研究
本文来自微信公众号——青人留学。中科院科研项目:人机交互—自然人机语音交互研究mp.weixin.qq.com项目简介自上世纪90年代以来,随着手写识别、语音识别、网络通信技术的发展,人机交互已发生了巨变,一个完全不懂编程以及网络通信原理的普通小孩,可能会比计算机科学家和网络工程师更好地使用计算机。方式的变革使得人机交互变得简单,而这个变革,就发生在短短不到30年内。可预见的是,未来计算机会更加...
继续访问
Pygame详解:前言
Pygame官网: Pygame的官网是有详细的文档的: 下图是Pygame 的所有类和模块,都有对应的文档, 我做的就是 Pygame中文文档,喜欢看英文原版的还是可以去看官网,不喜勿喷。 第一篇:Pygame详解(一):Color类 ...
继续访问
cocos2d for python_Python版的cocos2d库:一个2D游戏开发GUI框架的入门详解
1 说明:=====1.1 cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。1.2 不逊色于pygame,但是其实Python版的cocos2d库是基于pygame和pyglet的,也就是集大成者。1.3 中文教程少的可怜,所以写一个入门教程,把坑填了,亲测过,注释里有讲解。1.4A 2D framework for games and multimed...
继续访问
python 游戏引擎 cocos2d_【Cocos2dx游戏开发】Cocos2d-x简介
一、简介最近在做一个Android下的卡牌游戏——《九州幻想》开发项目,而我们使用的引擎是Cocos2dx,所以想要写写笔记来记录一下项目中的收获。当然首先稍微介绍一下Cocos2d-x引擎:cocos2d-x是一个免费、开源、跨平台的2D游戏引擎。我们知道Cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。最初cocos2d仅是一个用Python语言写的游...
继续访问
python编写人机交互界面_【021】重磅!人机交互设计项目(全下载)|1蓝调百香果跨年热文大赛作品...
项目4:人机交互设计项目───自动售货程序设计梁玉华山东昌乐二中随着科技的不断发展,计算机的出现引发关于“人机交互”的研究已经有半个世纪的历史。从最早的二进制大型计算机到现在的人工智能,几乎全世界的高科技精英们都在为人机交互的发展和前进不懈努力,未来人们生活的各个领域,人机交互将无处不在。自动售货机是人机交互技术在生活中的一项典型应用,本项目将以“自动售货程序设计”为主线,经历生活...
继续访问
Python 计算生态概览
文章目录Python 计算生态概览Python 计算程序设计思维Python 计算生态概览从数据处理到人工智能Python库之数据分析Numpy: 表达N维数组的最基础库Pandas: Python数据分析高层次应用库SciPy: 数学、科学和工程计算功能库Python库之数据可视化Matplotlib: 高质量的二维数据可视化功能库Seaborn: 统计类数据可视化功能库Mayavi:三维科学数据可视化功能库Python库之文本处理PyPDF2: 用来处理pdf文件的工具集NLTK: 自然语言文本处理第三
继续访问
利用Python+Cocos2d制作《猫吃老鼠》小游戏
因此,如果在代码的其他位置更新过self.position(或者self.x或者self.y),千万不要忘记调用update_cshape()更新cshape的位置。除了以上这几个方法以外,CollisionManagerGrid类还定义了一些其他有用的方法,如they_collide(),any_near(),objs_near(),objs_near_wdistance(),ranked_objs_near(),iter_all_collisions()等,鉴于篇幅有限,不再一一介绍。
继续访问
Python实战案例:Python使用cocos2d实现捕鱼达人
Python实战案例:Python使用cocos2d实现捕鱼达人 游戏,它是一种基于物质需求满足之上的,在一些特定时间、空间范围内遵循某种特定规则的,追求精神世界需求满足的社会行为方式。合理适度的游戏允许人类在模拟环境下挑战和克服障碍,可以帮助人类开发智力、锻炼思维和反应能力。一般的小型游戏都是一些随机变化的事物,根据鼠标或键盘的操作来完成对变化事物的点击操作或者控制操作,最终实现娱乐的目的。 如下图为地铁跑酷的界面。 上图中人就是一个控制的元素,通过控制人的左右和跳跃,最终对金币进行累加的游戏。
继续访问
python 人机交互 输入输出以及格式处理
输入函数:input() ; 输出函数:print() 例子: x = input('请输入:') input 函数接收的是字符串。 将字符串转化为int 型方式 例子: x = input('请输入x的值:') y = input('请输入y的值: ') z = x + y print(z) 运行程序: 请输入x的值:1 请输入y的值:1 11 #打印变量z结果 x = input('请输入x的值:') y = input('请输入y的值: ') z = int(x) + int
继续访问
热门推荐 python编程(关于cocos2d)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 做游戏的同学大约对cocos2dx不会陌生,基本上做2d游戏都会用到这一款引擎。但是下载cocos2dx非常麻烦,不光文件很大,还要配置visual studio,所以我在想要是linux下面也有一款类似的软件就好了。所以,趁周末找了找,没想到还真有,这就是python版本的coco
继续访问
Pygame精灵和碰撞检测
在开始学习相关知识点之前,我们有必要先学习精灵和碰撞检测的含义。 精灵(英文译为 Sprite),其实在一个游戏程序中,精灵本质指的是一张张小尺寸的图片,比如游戏中的各种道具、人物、场景装饰等,它们都可以看做成一张张小的“精灵”图。除此之外,人物的移动也可以看做是一系列小精灵图构成的序列(按帧组成的序列) 如果将逐帧分解后的动作,按照一定的频率播放,那么就形成了动画精灵,您将会看到雄鹰展翅高飞、人在策马奔腾、运动员奋力跳远。 精灵有个特点就是允许精灵之间进行交互,也称之为碰撞,而碰撞检测,指的就是检测两个精
继续访问
python人机交互界面设计_python做一个gui
本人是做接口测试的,而很多接口现在对于安全方面有了很大的重视,所以往往在接口层上做了一些加密,比如MD5、AES、SHA之类的加密,而每次加密,都是自己利用python编写脚本而生成sign值,这往往对于自己在工具效率上无法提高,所以就产生了自己编写一个简单的加密+请求接口的小工具的想法。因为本人现在主要是以python为主,所以在选择的时候,就从这方面入手。许多人在学习如何创建一个 GUI 应用...
python常用到哪些库?
Python作为一个设计优秀的程序语言,现在已广泛应用于各种领域,依靠其强大的第三方类库,Python在各个领域都能发挥巨大的作用。
下面我们就来看一下python中常用到的库:
数值计算库:
1. NumPy
支持多维数组与矩阵运算,也针对数组运算提供大量的数学函数库。通常与SciPy和Matplotlib一起使用,支持比Python更多种类的数值类型,其中定义的最重要的对象是称为ndarray的n维数组类型,用于描述相同类型的元素集合,可以使用基于0的索引访问集合中元素。
2. SciPy
在NumPy库的基础上增加了众多的数学、科学及工程计算中常用的库函数,如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等,可进行插值处理、信号滤波,以及使用C语言加速计算。
3. Pandas
基于NumPy的一种工具,为解决数据分析任务而生。纳入大量库和一些标准的数据模型,提供高效地操作大型数据集所需的工具及大量的能快速便捷处理数据的函数和方法,为时间序列分析提供很好的支持,提供多种数据结构,如Series、Time-Series、DataFrame和Panel。
数据可视化库:
4. Matplotlib
第一个Python可视化库,有许多别的程序库都是建立在其基础上或者直接调用该库,可以很方便地得到数据的大致信息,功能非常强大,但也非常复杂。
5. Seaborn
利用了Matplotlib,用简洁的代码来制作好看的图表。与Matplotlib最大的区别为默认绘图风格和色彩搭配都具有现代美感。
6. ggplot
基于R的一个作图库ggplot2,同时利用了源于《图像语法》(The Grammar of Graphics)中的概念,允许叠加不同的图层来完成一幅图,并不适用于制作非常个性化的图像,为操作的简洁度而牺牲了图像的复杂度。
7. Bokeh
跟ggplot一样,Bokeh也基于《图形语法》的概念。与ggplot不同之处为它完全基于Python而不是从R处引用。长处在于能用于制作可交互、可直接用于网络的图表。图表可以输出为JSON对象、HTML文档或者可交互的网络应用。
8. Plotly
可以通过Python notebook使用,与Bokeh一样致力于交互图表的制作,但提供在别的库中几乎没有的几种图表类型,如等值线图、树形图和三维图表。
9. pygal
与Bokeh和Plotly一样,提供可直接嵌入网络浏览器的可交互图像。与其他两者的主要区别在于可将图表输出为SVG格式,所有的图表都被封装成方法,且默认的风格也很漂亮,用几行代码就可以很容易地制作出漂亮的图表。
10. geoplotlib
用于制作地图和地理相关数据的工具箱。可用来制作多种地图,比如等值区域图、热度图、点密度图。必须安装Pyglet(一个面向对象编程接口)方可使用。
11. missingno
用图像的方式快速评估数据缺失的情况,可根据数据的完整度对数据进行排序或过滤,或者根据热度图或树状图对数据进行修正。
web开发库:
12. Django
一个高级的Python Web框架,支持快速开发,提供从模板引擎到ORM所需的一切东西,使用该库构建App时,必须遵循Django的方式。
13. Socket
一个套接字通讯底层库,用于在服务器和客户端间建立TCP或UDP连接,通过连接发送请求与响应。
14. Flask
一个基于Werkzeug、Jinja 2的Python轻量级框架(microframework),默认配备Jinja模板引擎,也包含其他模板引擎或ORM供选择,适合用来编写API服务(RESTful rervices)。
15. Twisted
一个使用Python实现的基于事件驱动的网络引擎框架,建立在deferred object之上,一个通过异步架构实现的高性能的引擎,不适用于编写常规的Web Apps,更适用于底层网络。
数据库管理:
16. MySQL-python
又称MySQLdb,是Python连接MySQL最流行的一个驱动,很多框架也基于此库进行开发。只支持Python 2.x,且安装时有许多前置条件。由于该库基于C语言开发,在Windows平台上的安装非常不友好,经常出现失败的情况,现在基本不推荐使用,取代品为衍生版本。
17. mysqlclient
完全兼容MySQLdb,同时支持Python 3.x,是Django ORM的依赖工具,可使用原生SQL来操作数据库,安装方式与MySQLdb一致。
18. PyMySQL
纯Python实现的驱动,速度比MySQLdb慢,最大的特点为安装方式简洁,同时也兼容MySQL-python。
19. SQLAlchemy
一种既支持原生SQL,又支持ORM的工具。ORM是Python对象与数据库关系表的一种映射关系,可有效提高写代码的速度,同时兼容多种数据库系统,如SQLite、MySQL、PostgreSQL,代价为性能上的一些损失。
自动化运维:
20. jumpsever跳板机
一种由Python编写的开源跳板机(堡垒机)系统,实现了跳板机的基本功能,包含认证、授权和审计,集成了Ansible、批量命令等。
支持WebTerminal Bootstrap编写,界面美观,自动收集硬件信息,支持录像回放、命令搜索、实时监控、批量上传下载等功能,基于SSH协议进行管理,客户端无须安装agent。主要用于解决可视化安全管理,因完全开源,容易再次开发。
21. Magedu分布式监控系统
一种用Python开发的自动化监控系统,可监控常用系统服务、应用、网络设备,可在一台主机上监控多个不同服务,不同服务的监控间隔可以不同,同一个服务在不同主机上的监控间隔、报警阈值可以不同,并提供数据可视化界面。
22. Magedu的CMDB
一种用Python开发的硬件管理系统,包含采集硬件数据、API、页面管理3部分功能,主要用于自动化管理笔记本、路由器等常见设备的日常使用。由服务器的客户端采集硬件数据,将硬件信息发送至API,API负责将获取的数据保存至数据库中,后台管理程序负责对服务器信息进行配置和展示。
23. 任务调度系统
一种由Python开发的任务调度系统,主要用于自动化地将一个服务进程分布到其他多个机器的多个进程中,一个服务进程可作为调度者依靠网络通信完成这一工作。
24. Python运维流程系统
一种使用Python语言编写的调度和监控工作流的平台,内部用于创建、监控和调整数据管道。允许工作流开发人员轻松创建、维护和周期性地调度运行工作流,包括了如数据存储、增长分析、Email发送、A/B测试等诸多跨多部门的用例。
GUI编程:
25. Tkinter
一个Python的标准GUI库,可以快速地创建GUI应用程序,可以在大多数的UNIX平台下使用,同样可以应用在Windows和Macintosh系统中,Tkinter 8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
26. wxPython
一款开源软件跨平台GUI库wxWidgets的Python封装和Python模块,是Python语言的一套优秀的GUI图形库,允许程序员很方便地创建完整的、功能健全的GUI用户界面。
27. PyQt
一个创建GUI应用程序的工具库,是Python编程语言和Qt的成功融合,可以运行在所有主要操作系统上,包括UNIX、Windows和Mac。PyQt采用双许可证,开发人员可以选择GPL和商业许可,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。
28. PySide
一个跨平台的应用程式框架Qt的Python绑定版本,提供与PyQt类似的功能,并相容API,但与PyQt不同处为其使用LGPL授权。
更多Python知识请关注Python自学网。