
Python
创客老师Apple
与君共同见证学习历程!!
展开
-
Python3用pyinstaller打包程序出现ModuleNotFindError的解决方法
今天打包写好的程序,编译、生成的时候并没有错误,但在运行的时候回出现"ModuleNotFindError"错误,这个我们可以用下面的方法解决:以上面的错误提示为例,我们会发现“pkg_resources.py2_warn”找不到,那么我们可以在程序中手动将库导入进来:这样子问题就可以解决了;还看到网上有帖子说,可以编辑".spec" 文件来解决问题,但是我这边没有成功,这里就不放上来了。...原创 2020-06-27 14:56:29 · 1923 阅读 · 1 评论 -
Python3.9 解决 ImportError: No system module pywintypes (pywintypes39.dll) 的方法
今天在使用 pywintypes 库的时候,莫名其妙就出现了 “ImportError: No system module 'pywintypes' (pywintypes39.dll)” 报错,详细报错信息如下:解决方法如下(项目使用的是虚拟环境):第一步、打开Python的安装目录,找到 “pywin32_system32”文件夹第二步、将整个文件夹复制到 “项目名\venv\Lib\site-packages”然后再运行一下,发现报错就消失了,问题解决。...原创 2020-06-17 08:20:46 · 15311 阅读 · 3 评论 -
树莓派通信协议——MQTT的安装及使用
MQTT是一种基于TCP/IP协议栈构建的异步通信协议,是一种轻量级的发布/订阅信息传输协议,基于topic订阅关系的发布和推送;在实践中可空间上,将消息发送者和接受者分离,可以再不可靠的网络环境中进行扩展,适用于设备硬件存储空间有限或网络带宽有限的场景。上面是比较官方的解释,那么我们用我们听得懂的话来解释,现在的抖音很火,那我们就用抖音举个栗子:抖音是一个短视频平台,任何人都可以发布自己拍的视频,也可以看别人的视频,那么我们假设有用户A和用户B;用户A ------关注------> 用户.原创 2020-05-09 11:28:06 · 5076 阅读 · 1 评论 -
Python numpy库 —— linspace()的用法
我们可以将 linspace() 函数理解成是用来创建一个等差数列的,或者说将一个区间的数值等分成N份,下面举个栗子:将 1~10 等分成10份,那么最后的结果是怎样的呢?1,2,3,4,5,6,7,8,9,10最后创建出来的就是这样一个等差序列;我们还是首先看一下函数原型是怎样的:英文好的自己看,不好的随着我一起看下去;我们发现这个函数一共有7个参数,除了前两个,其他的都有初始值...原创 2020-05-01 18:34:29 · 13145 阅读 · 0 评论 -
Python3 用PIL处理图像(二)——将图片装换成素描
今儿一朋友发了一张我的照片,经过了处理,转换成素描照了,随后又发了一段代码给我,这个其实说新奇也不是太新奇,但是也挺有意思的,那我们就来分析一下这段代码,看看是如何将一张图片转换成素描图的;我们先来看一下发给我的代码是怎么样的:from PIL import Image,ImageFilter,ImageOpsimg = Image.open("苹果.jpg")def dodge...原创 2020-04-26 22:22:08 · 2388 阅读 · 2 评论 -
Python3 进阶篇——偏函数的使用
我们之前讲了lambda创建匿名函数,可以使我们的代码更加的简洁,那么我们接着来讲解一下什么是偏函数?偏函数有什么样的作用?接下来我们先来看一个栗子:print('aaaaaaaaaa')print('bbbbbbbbbb')print('cccccccccc')# 输出结果:# aaaaaaaaaa# bbbbbbbbbb# cccccccccc上面是我们经常会使用到...原创 2020-03-28 17:14:43 · 485 阅读 · 0 评论 -
Python进阶篇——lambda、map、filter、reduce高级函数的使用
OK,我们今天来简单讲一下Python中的几个高级函数,为什么说这是高级函数呢?因为它可以极大的减少我们的代码量,让我们的代码看起来更加的清爽,提高我们的开发速度;用lambda创建匿名函数在理解匿名函数之前,我们先来回顾下我们之前创建函数是怎么创建的:def 函数名(参数1,参数2[,……]): 函数主体 return 返回值标标准准的函数构建方法,但是有...原创 2020-03-28 13:28:05 · 973 阅读 · 1 评论 -
Python3 用turtle库学画画——(一)美国队长盾牌
turtle是Python中的一个标准库(所以我们不需要另外安装哈),可以非常方面的进行基础图形的绘制,我们可以用它画樱花、画迷宫等很多有意思的图形,接下来我们就看看吧!OK,废话不多说,我们今天就拿美国队长的盾牌入个门,为啥是它呢?因为简单呗,只有两个基础图形操作,基本绘图操作它都涉及了,不盘他盘谁。。。在开始之前,我们先来分析一下,在我们实际生活中,我们画画需要用到什么东西?画...原创 2020-03-27 22:38:55 · 3859 阅读 · 0 评论 -
pip修改清华源
最近安装python库是真心累,没有啥是不超时的,下着下着就崩了,心态崩了呀!后面果断换成清华源,速度飞起!!!这里需要注意的是,如果要将清华源设置成默认,那么需要将pip升级(>10.0.0),然后再进行配置:升级pip pip install pip -U# 如果升级都升级不了,那么直接使用清华源来升级pip:# pip install -i https://pypi....原创 2020-03-26 18:43:49 · 28968 阅读 · 1 评论 -
Python3 用PIL处理图像(一)——PIL的基础运用
PIL是一个功能非常强大的第三方图像处理库,它可以转化图像格式、创建缩略图、显示图像、截取图像、翻转或旋转图片等等;原本PIL是只支持python2的,后来出现了移植到python3的pillow,其功能与PIL相似,所以这里需要注意。一、安装PILpip install pillow我在安装的时候出现了网络延迟报错等情况,总之锲而不舍,多试几次,或者换个时间再来,前提是命令不要...原创 2020-01-11 20:18:08 · 5751 阅读 · 1 评论 -
Python qrcode二维码操作——(一)简单使用qrcode
既然我们是要对二维码进行创建和解析,那我们就必须先来认识一下什么是二维码:二维码是一种在一维码基础上扩展出来的可读性条码,用黑白矩形图案表示二进制数据;那么问题又来了,一维码又是什么?下面我们经常会在包装袋上面看到的条形码:这就是一维码,我们可以看见它是由长度相同,粗细不同的线条构成,那么他是什么存储数据的呢?那我们就要找不同点,粗细是他们的变量,即用宽度存储数据,这是一维方案;二维码就是在一...原创 2020-01-10 01:28:32 · 5968 阅读 · 0 评论 -
Docker Ubuntu14.04 安装pip
pip是python管理库非常关键的工具,但是在Ubuntu中虽然默认安装了python2.7和python3.4,但没有安装pip,所以我们就需要手动安装;更新apt-get: apt-get update 不要问我为什么,上图就是原因; 一段时间的等得,这样就好了,我们接下来就要安装pip了; 安装pip: apt-get install python3-pip pi...原创 2020-01-09 02:22:02 · 990 阅读 · 0 评论 -
Python3 Flask框架(二)——转化器
在开始转换器的内容之前,我们先来看下页面的链接跳转,这在我们的网站中会经常看到:from flask import Flaskfrom flask import redirect # 页面跳转的方法from flask import url_for # 通过视图函数名反向推出路由路径app = Flask(__name__)app.config.from_pyfile('....原创 2020-01-05 18:26:06 · 675 阅读 · 0 评论 -
Python3 语音合成——pyttsx3 从文本到语音
pyttsx3是一款非常简单的文本到语音的转换库,可以脱机工作,支持多种TTS引擎(sapi5、nsss、espeak),通过这个库可以非常方便的将文字转换成语音;安装pyttsx3:pip install pyttsx3首先看下pyttsx3最简单的应用:import pyttsx3say = pyttsx3.init() # 创建pyttsx对象,并初始化...原创 2020-01-05 00:47:45 · 14084 阅读 · 8 评论 -
Python3 Flask框架——第一次使用
Flask是一个轻量级的Web框架,它只给我们提供了必须的路由和渲染,其他的功能我们可以自由选配,所以Flask的灵活度非常高,且耦合度低,可以满足我们快速开发的需求;接下来我们看下最最最基本的框架结构:from flask import Flask'''在这里强调一下为什么使用的是from flask import Flask,而不是from flask import *?首先如...原创 2020-01-04 00:29:45 · 561 阅读 · 0 评论 -
Python3基础篇——闭包与装饰器
在开始学习之前,我们先来了解一下作用域的概念,接下来我们先来看下下面这段程序:a = 0 # 定义了一个变量adef func1(): # 定义了一个方法func1 a = 1 # 将变量赋值为1func1() # 调用了方法func1print(a) # 将变量a输出了# 输出结果:# 0...原创 2020-01-03 17:41:00 · 383 阅读 · 1 评论 -
Python3基础篇——虚拟环境
我们都知道Python强大的原因当属Python庞大的第三方库,我们需要用到什么功能的时候,只需要找到相应的库,遵循库的逻辑原则,就可以很快的实现我们的效果,在很大程度上减小了开发的难度;那么怎么管理库就成了Python重要的一环,有时这个库我们可能也就只用到这一次,希望相关的依赖关系不要影响我原来的系统环境;有时我们克隆别人的代码,希望拿到就能用,如果一个一个安装库,库版本可能还不对,造成运...原创 2020-01-01 23:53:20 · 656 阅读 · 0 评论 -
Python3进阶篇——sqlite3基础使用
我们在前面已经学习了怎么爬取我们想要的数据,并且对数据用csv进行了存储,但是这种存储方式对后续的数据处理比较麻烦;接下来学习一种嵌入式数据库——sqlite3,它是一种自给自足、无服务器、零配置、事务性的 SQL 数据库引擎,它本身使用C语言写的,体积很小,可以被嵌入到很多应用中,甚至很多APP都使用sqlite对数据进行存储。在我们的Python3中,已经内置了sqlite3,所以不用我们...原创 2019-12-20 17:50:33 · 3603 阅读 · 0 评论 -
Python3爬虫——用selenium获取歌曲id,做一个音乐下载器
我们之前已经学习了selenium的简单实用,现在就来实战下,我们通过selenium获取歌曲的id,然后通过网易云音乐的外链地址来下载音乐,做一个音乐下载器(此项目仅供教学使用),下面我们先来看一下效果:老规矩,我们先来分析下这个音乐下载器的构成:通过输入框输入我们需要搜索的歌曲 点击“搜索”按钮实现对歌曲的搜索 在列表框里选择想要下载的音乐,点击“下载”按钮即可下载 点击“退出”...原创 2019-12-19 20:32:02 · 1990 阅读 · 1 评论 -
Python3爬虫——selenium学习笔记(一)
Selenium是一个自动化web应用程序测试工具,它可以模拟我们浏览器,所有的操作就像是我们自己真实在操作一样,使用selenium我们可以模拟登陆、点击等网页操作,里面也提供了一些数据抓取的工具,我们可以通过页面模拟对数据进行抓取;好了废话不多说,直接一步一步分析:安装selenium:pip install selenium 不知道是不是我凌晨安装的原因,估计服务器在维护,一直...原创 2019-12-17 17:40:20 · 1241 阅读 · 0 评论 -
Python爬虫——获取ajax异步加载数据
在我们访问网页的时候,经常会看到一种技术,当我们点击了一个选项卡或者其他的链接,网页数据发生了改变,但是网址却没有发生任何变化,那么这种技术就是ajax异步加载数据,当我们点击一个链接的时候,它只是发送了一个数据包过来,然后只是将这个数据包的数据进行了替换,这样的好处就是我们进行网页访问的时候可以更加简洁高效,也更加的节省资源,但是这对于我们爬取数据的要求就更高了,那么我们接下来来看一下怎么爬取异...原创 2019-12-19 17:05:51 · 4524 阅读 · 2 评论 -
Python3爬虫——带参数访问页面(以豆瓣为例)
我们之前在百度图片下载器、个性签名设计器等博文中都有用到将参数发送给服务器,然后返回我们需要的结果,但是两者不同的是,图片下载器我们使用了非常简单粗暴的拼接方法,但是个性签名设计器则使用了发送参数请求的方式,两者看起来肯定是带参数访问来的高端和正规,那我们今天就来讲解一下,如何带参数访问页面;首先我们先打开豆瓣官网:https://www.douban.com/,然后调出Network;我...原创 2019-12-19 16:15:56 · 1223 阅读 · 0 评论 -
Python爬虫(五)——小小翻译机(数据源来自有道翻译)
我们之前已经讲过了ajax的相关知识,现在我们来试试模拟js,破解有道翻译做一个桌面级的翻译机;开发环境:Python3.6 谷歌浏览器首先我们还是先分析一下网站:首先我们先打开网站,调出“检查”-“Network”,然后先把所有的数据先清空,然后选中 XHR,这就是我们异步请求交换的数据包: 我们往网站输入我们想翻译的内容,看看会出现什么: 我们发现出现了两个数据,我们先把第...原创 2019-12-16 20:14:42 · 708 阅读 · 0 评论 -
Python爬虫(四)——小说下载器
既然我们之前已经讲了BeautifulSoup的使用,那么我们今天就来实战下,用BeautifulSoup解析小说网站,做一个小说下载器;首先,先分析一下网站:我们的目标是一个叫全小说的网站:https://qxs.la/ 我们可以看见右上角的位置有一个搜索框,我们可以将想要搜索的关键词键入,然后搜索我们想要的内容,我们来分析下这个网站的结构; 我们在搜索框输入“唐家三少”,看看网页会...原创 2019-12-18 23:12:00 · 3766 阅读 · 1 评论 -
Python3爬虫——用BeautifulSoup解析古诗文网
我们之前已经用Xpath分析过了古诗文网,但还是感觉有点麻烦,所以今天来讲BeautifulSoup库,它可以很方便的帮我们抓取网页的数据,同样也支持lxml解析器,下面我们来详细介绍:安装BeautifulSoup库:pip install beautifulsoup4导入BeautifulSoup库:import bs4 # 导入BeautifulSoup整个库fr...原创 2019-12-13 17:12:29 · 2759 阅读 · 0 评论 -
Python3爬虫——关于URL中文转码的方法
在我们进行数据传参访问的时候,HTTP协议的参数通常以键值对的形式出现,多个参数之间用 &分隔,但是如果值是中文或者是其他特殊字符的话,就要对其进行转码,不然可能会产生歧义,我们接下来就来看下如何对中文进行转码:from urllib import parsestr = '中国'print(parse.quote(str)) # 对中文进行编码print(parse....原创 2019-12-12 00:36:59 · 7596 阅读 · 1 评论 -
Python爬虫(三)——百度图片下载器
我们之前写的两个小项目,都是对文字的处理和存储,而且没有与我们的动态交互,写的代码是啥就只能爬取啥内容,那么接下来我们就用百度图片讲解一下图片的下载及最简单的键入关键字搜索内容;我们还是先分析一下我们每搜索一个内容,它的网址是怎么变化的,肯定是有所规律的,我们来总结一下:# 我们来对比下这两个网址有什么区别https://image.baidu.com/search/flip?tn=b...原创 2019-12-11 19:20:55 · 1223 阅读 · 6 评论 -
Python爬虫(二)——爬取电影天堂,保存下载地址
首先我们开始要分析一下,下载种子我们需要哪几步:获取所有电影页的访问地址 获取电影页源码 提取出下载地址 将下载地址保存首先第一步,我们来分析一下电影天堂网站的结构,发现他跟我们的古诗文网还是非常类似的,全站静网结构,不需要登录,页面有全新的地址,这对于初学来讲是非常容易上手的;接下来我们以国内电影(https://www.ygdy8.net/html/gndy/china/index...原创 2019-12-11 01:42:03 · 10089 阅读 · 2 评论 -
Python爬虫(一)——爬取古诗文网,初识什么是爬虫
首先来说下什么是爬虫,按照百度百科的说法是:是一种按照一定规则,自动抓取万维网信息的程序或者脚本;首先它是程序,需要我们定义好规则,然后程序就会按照定义好的规则抓取网络上的信息,数据抓取下来了之后,需要我们对这个庞大的数据进行筛选、提取,也就是我们通常说的数据清洗,获得我们需要的信息。这里需要说的一点是,爬虫并不是python的专利,用其他的语言也是可以做到的,只是因为python提供了很多方便我...原创 2019-12-09 23:45:31 · 4683 阅读 · 2 评论 -
Python爬虫——用XPath解析网页源码
首先先来介绍下XPath是什么东西:XPath是一个用路径表达式来提取XML文档中节点的工具,我们有很多像有界面的东西都是用xml语言写的,其中HTML就是xml的一种;下面举个栗子理解一下:<html> <body> <h1>title</h1> <p>paragraph</p> <div id=...原创 2019-12-09 20:01:24 · 3711 阅读 · 0 评论 -
Pygame飞机大战(七)——计算分数和游戏结束界面的绘制
我们在前面几篇已经把基础的游戏操控和击毁等特效已经完成了,现在大体可以玩儿了,但是还有几部分问题:虽然可以操控了,但是没有分数的体现 虽然定义了三条命,但是血扣完了还能玩所以加下来就要把以上的问题解决,首先先把分数给他加上去:# 下面这部分代码是在while True之前完成的哦score = 0 # 定义一个变量存放分数score_font = pygame.font.F...原创 2019-12-08 22:19:09 · 8313 阅读 · 2 评论 -
Pygame飞机大战(六)——完成击毁效果,并添加生命值
话不多说,直接上代码分析……因为我们之前在创建己方飞机的时候,没有对音效和重生的属性和方法进行定义,所以我们先把这一部分补充完成:class myPlane(pygame.sprite.Sprite): def __init__(self,screen,screen_size): pygame.sprite.Sprite.__init__(self) ...原创 2019-12-08 21:18:02 · 5319 阅读 · 0 评论 -
Pygame飞机大战(五)——定义敌机的类,并且创建敌机
同样的,先来分析下敌机都有哪些属性,其实三种机型都是类似的,了解一个之后,其他的其实都没有问题的:主体的图片和坠毁的图片 坠毁的音效(大型敌机还有一个出场的音效) 敌机的状态,被消灭了就需要复活 敌机移动和边界的判断 发射子弹(这里篇幅可能会太长,所以讲敌机子弹的部分也省略了,添加的方法其实都是类似的)下面我们就以大型敌机为例,因为大型敌机还有一个出场的音效,其他的是没有的,他是一个...原创 2019-12-08 18:28:36 · 2430 阅读 · 0 评论 -
Pygame飞机大战(四)——创建己方飞机的类,并添加子弹吧
我们接下来要基于pygame.sprite.Sprite创建自己的类,首先必须是主角的,创建一个己方飞机的类,并且给飞机加上子弹哈!首先我们还是先分析一下,己方飞机需要有哪些部分构成:自身的图片加载,并且要有喷气的特效 要有上下左右控制的方法 当被击中了要有击中的效果 被击中了之后要能够复活(三条命)class myPlane(pygame.sprite.Sprite): ...原创 2019-12-08 16:43:04 · 1360 阅读 · 0 评论 -
Pygame飞机大战(三)——添加背景图片和背景音乐
有了前面两章的学习,相信大家对pygame已经有了一个初步的了解,接下来我们就要开始一步一步完善我们的游戏了;添加背景图片应该没有什么难度,只需要将图片加载进来,然后再飞机绘制之前将背景图片绘制好就行了,这里不要问为什么要先绘制背景图片,这就好比写错字了,需要用修正液修改,肯定是先涂修正液在重新写吧:import pygameimport sysfrom pygame.locals ...原创 2019-12-07 17:11:55 · 8052 阅读 · 1 评论 -
Pygame飞机大战(二)——用动画精灵创建一组飞机,并检测碰撞
我们首先来讲一下动画精灵是个什么东西?我们在之前显示图片时候,都是先把背景色填充,然后再把飞机绘制在屏幕上,最后刷新窗体,这中间就有一个擦除和绘制的过程;我们现在来想象一下,在游戏的时候会有很多的飞机,随着我们现在的机器配置越来越高当然没什么问题,可以很快速的处理很多图片的显示和消失,但是以前的硬件基础并不是很好,这些游戏机就有一些特殊的硬件,专门用来处理需要快速移动的游戏对象,这些对象就称为“...原创 2019-12-07 16:24:06 · 1527 阅读 · 0 评论 -
Pygame飞机大战(一)——创建游戏窗体并让飞机动起来
pygame是我们用python进行游戏开发常用的一个库,可以很方便对媒体文件(图片、音频等)和事件(鼠标、键盘、关闭等)进行处理,基本可以满足我们对简单游戏开发设计的需求;首先我们要安装pygame库:pip install pygame后面的讲解,只涉及需要用到的方法和属性进行讲解,未尽之处详见官网;接下来我们来分析一下,一个游戏由哪几部分组成:游戏的人物图片 分数、血...原创 2019-12-05 19:08:00 · 3239 阅读 · 1 评论 -
Python3进阶篇——多线程的应用
下面我们来想象一个场景,放学后教室要打扫卫生,我们一般是怎么分配任务的,一般来讲不可能说小明你去把今天的卫生全部打扫了,这样就太残暴了;一般来说,我们分组来打扫,比如小明打扫第一组,小刚打扫第二组,小智打扫第三组……这样合作,很快就可以将打扫卫生这个任务完成了;那么对于我们程序来讲也是一样的,我需要下载音乐,如果就是在一个main函数里面进行,这就好比让一个人打扫全部的卫生,虽然也能够完成任务,但...原创 2019-12-04 20:43:09 · 414 阅读 · 0 评论 -
Python3基础篇——异常处理
说到异常,我们先来理解一下什么是异常,打个比方,今天你做了一件错事,惹了别人不高兴了,那么这件错事就是一个异常,本来别人是高高兴兴的,你打破了原有高兴的环境;在我们程序里面,异常就是程序跑到一半,出现了错误,如果不去处理的话,程序就停止了,比如你要打开一个文件,结果这个文件不存在,那么程序就不明白你的意思了,就会抛出一个异常。那么什么是异常处理呢?顾名思义,就是异常发生了,你要怎么去解释,你惹...原创 2019-12-04 18:47:37 · 355 阅读 · 0 评论 -
Python3字符串高级应用——利用join()合并字符和split()分隔字符
当我们有一个数据集合,想要将这个集合里面的数据根据一定的规则合并到一起时,我们就可以使用join来对它进行合并:print('|'.join('今天天气真好'))print(' '.join(['a','b','c']))print(','.join(('a','b','c')))# 今|天|天|气|真|好# a b c# a,b,c我们通过上面的例子可以总结出以下几点:...原创 2019-12-03 01:18:14 · 834 阅读 · 0 评论