自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(217)
  • 资源 (5)

原创 打包带资源文件的Python项目到pypi

之前上传到pypi作为库的只是一个单独.py文件,而且py文件中无须引入任何多余的第三方依赖,即使在项目文件夹下没有源文件package也无所谓,只要在setup.py文件中使用py_modules说明要添加的py文件即可。这一次制作的是包含资资源文件的项目,项目结构如下:kitchen是项目文件夹,cookgame是源文件夹,cookgame下面的sound是声音资源文件夹,包括一个mp3和一个wav声音文件,textures是图片资源文件夹,包括若干png和jpg的图片。game.py需要使

2020-09-16 18:11:35 15

原创 conda创建虚拟环境

1cmd下输入conda env list或者conda info -e检查目前已有的conda虚拟环境。conda env list 如果之前没有增加过conda的虚拟环境,则只会有一个默认的,由conda自带的名为base的虚拟环境。2输入指令 conda create -n虚拟环境的名字 python =版本号conda create -n myenv python=3.7.4示例指令是安装一个名为myenv的虚拟环境,虚拟环境使用的python版本是3.7....

2020-08-21 01:15:55 78

原创 使用PyQT5 designer的相关问题

1.安装如果即没有安装过PyQt5也没有安装过其它相关设置工具,则直接安装pyqt5-toolspip install pyqt5-tools -i https://pypi.douban.com/simple此时会先安装pyqt5-tools,然后再自动安装pyqt5。pyqt5-tools比较大,安装时最好指定国内镜像。2.启动进入cmd,直接输入pyqt5designer进行designer的启动。启动时,有可能会报VCRUNTIME140_1.DLL文件缺失,此时.

2020-08-10 16:18:15 26

原创 openpyxl读取Excel的常用指令

目标文件学生成绩单.xlsxExcel相关的名词工作簿Workbook:双击某个.xlsx文件后在Excel中呈现的内容。例如:学生成绩单.xlsx双击打开后是一个工作簿工作表Sheet:一个工作簿由多个工作表组成。同一时间,只能有一个工作表处于可编辑状态,这个工作表也称为当前工作表(active sheet)行Row:工作表中横向为行,一行代表工作表中的一条数据列Column:工作表中纵向为列,一列代表数据的一个属性(特征)单元格Cell:工作表中横纵相交的部分就是一个..

2020-07-27 00:01:42 67

原创 Numpy按轴计算

a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])如果二维数组a展示到图上就是:因为a[0]为[1,2,3,4],a[1]为[5,6,7,8],a[2]为[9,10,11,12],所以[1,2,3,4]在0轴0的位置,[5,6,7,8]在0轴1的位置,而[9,10,11,12]在0轴2的位置。1是a[0][0],2是a[0][1],3是a[0][2],4是a[0][3],所以[1,2,3,4]按照自己的下标顺序沿着1轴依次展开。5,6,7,8和.

2020-05-27 00:57:55 75

转载 Numpy transpose函数的可视化理解

转自知乎观海云远的文章,做了部分的删改。3维数组的小例子:import numpy as npt = np.arange(1,17).reshape(2, 2, 4)print(t)三维数组为:[[[ 1 2 3 4] [ 5 6 7 8]] [[ 9 10 11 12] [13 14 15 16]]]使用转置函数:t1 = t.transpose(1, 0, 2)print(t1)转置结果为:[[[ 1 2 3 4] [ 9

2020-05-26 21:17:51 100

原创 Numpy的切片索引

通过索引得到的是原数组降低维度的内容,通过切片得到的是原数组维度的部分内容。arr2d = np.array([[1,2,3],[4,5,6]]) 这是一个Numpy的二维数组利用索引,获得arr2d中的内容:arr2d[0]是[1,2,3],是一个一维数组,比arr2d二维数组降低了一个维度arr2d[1]是[4,5,6],是一个一维数组,比arr2d二维数组降低了一个维度arr2d[0,1],获得2。可以将其看为两步,首先是arr2d[0]获得降低一个维度的一维数组[1,2,3],然

2020-05-24 13:28:59 65

原创 迭代器、生成器、生成器表达式

本质上,迭代器、生成器和生成器表达式是同一种东西,向Python解释器不断的提供对象。只不过为了达到同样的目的,迭代器、生成器和生成器表达式实现的方式有所不同。迭代器使用类去实现Python的迭代器协议,重写__iter__和__next__魔术方法。其中__iter__函数必须返回一个实现了__next__函数的对象,__next__函数的返回值就是迭代器对象每次提供的对象内容。如果在迭代过程中,__next__函数抛出了StopIteration异常,则迭代器中止。'''生成N

2020-05-22 20:21:58 73

原创 记录一下最近遇到的问题后面会详细写

1 pywin32 版本,注册表2 pip list | findstr pip show3 getattr,__geattr__,__getattribute__, __get__4 openpyxl api的变化

2020-05-09 00:43:30 193

转载 卷积的通俗解释

原文地址:《对卷积的困惑》这个知乎上的回答对卷积进行了迄今为止我认为最明确的解释,现把其中一些内容摘录下来作为学习笔记,以下均为摘录内容:文章主要想解释两个问题:1. 卷积这个名词是怎么解释?“卷”是什么意思?“积”又是什么意思?2. 卷积背后的意义是什么,该如何解释?对卷积这个名词的理解:所谓两个函数的卷积,本质上就是先将一个函数翻转,然后进行滑动叠加。在连续...

2020-04-17 12:36:55 99

原创 turtle支持的颜色单词

turtle是基于tk的画图库。http://www.science.smith.edu/dftwiki/index.php/Color_Charts_for_TKinter提供的基于tk的颜色表在turtle中也可以使用:对应的颜色名称:COLORS = ['snow', 'ghost white', 'white smoke', 'gainsboro', 'floral whi...

2020-04-09 12:08:30 335

原创 Python的装饰器

Python的装饰器其实就是“函数是第一公民”的一种体现,即函数可以作为另一个函数的参数传入也可以作为函数的返回值返回。一个标准的装饰器一般是这样:def outter(func): def inner(*args, **kwargs): print(f'函数的名字:{func.__name__}') print(f'函数的位置参数:{args}'...

2020-04-09 00:51:29 38

原创 setup和screensize

setup用来设置窗口的大小,而screensize用来设置画布的大小。根据turtle.cfg文件的设置,默认窗口的宽度是屏幕的一半,高度是屏幕的75%;默认画布的宽度是400,高度是300。窗口中包含画布,如果画布大于窗体,会出现滚动条,反之画布填充窗体,但画布的尺寸大小并没有改变。import turtleturtle.setup(800,600) # 窗口位于屏幕中心...

2020-04-05 20:29:34 223

原创 上传py模块到pypi

1. 在pypi官网(https://pypi.org)注册并完成账号认证。2. 在本地创建Python项目。项目组成包括:tests文件夹,里面是空的就可以kcodepen.py 准备上传的模块文件。我在kcodepen中定义了四个函数,分别用来绘制方形、圆形、三角形和五角星:LICENSE 证书文件。文件的内容在pypi的官方指导文档有说明,直接复制粘贴即可:...

2020-04-01 16:40:09 86

转载 Python格式化字符串

本文参考了燕双嘤的博文Python:格式化字符串,对部分内容做了修改和扩充,在案例上做了详细说明注释。一,使用%操作符"%[-][+][0][m][.n]格式化字符"%exp例如:x = 123s = "%s" % xprint(s) # 123print(type(s)) # <class 'str'&gt...

2020-02-14 12:59:27 31

转载 Numpy:对Axis的理解

本文转自知乎周康生的文章Numpy:对Axis的理解,转载无删改。Axis就是数组层级 设axis=i,则Numpy沿着第i个下标变化的方向进行操作 Axis的应用Axis就是数组层级要想理解axis,首先我们先要弄清楚“Numpy中数组的维数”和"线性代数中矩阵的维数"这两个概念以及它们之间的关系。在数学或者物理的概念中,dimensions被认为是在空间中表示一个点所需要的...

2019-11-21 10:53:35 55

转载 numpy的axis

知乎上看到的超好的讲解文章,摘录过来了。原作者是射命丸咲,原文地址是:Python · numpy · axis摘录如下(些微做了一丁点删减):要想学习 axis,首先要知道的就是 axis 的计数方式。我们在使用 numpy 的各种函数——比如说 np.sum——的时候,有一个参数就叫做 axis。那么这个参数的意思是什么呢?最直白地来说的话,就是“最外面的括号代表着 axis=0,依次...

2019-09-27 12:44:00 52

原创 利用网页录制wav格式的音频文件

需要使用第三方的Recorder.js库,并使用AudioContext进行录制。Recorder.js的Github地址为https://github.com/mattdiamond/Recorderjs,作者提供了一个官方案例,但是因为年代有些久远,所以需要在案例的基础上进行部分修改:第一步:引入Recorder.js<script src="recorder.js"&gt...

2019-09-19 16:55:43 354 3

原创 SQLAlchemy定义数据表关系

一对多采用作者和文章,一个作者可以有多篇文章,一篇文章只能有一个作者(暂不考虑合著的情况)。一般在“一”的一方定义关系:articles = relationship('Article',backref='author')查询时articles属性会以列表的形式返回该作者的所有文章。一般在“多”的一方定义外键:author_id=Column(Integer,Forei...

2019-09-08 19:42:18 123

原创 爬取页面上的外链

代码原型来自于《Web Scraping with Python 2ndEdition》P37页的一个案例代码。代码的功能是根据初始的页面地址抓取该页面中的所有外链接并随机选取一个继续追踪这个外链接指向的新页面,并搜集新页面中的所有外链接随机选取一个后继续追踪。书中实现该功能的代码整体思路是根据给定的链接抓取该链接指向页面中所有的a标签href属性值,并将href值为外链的提取出来组成...

2019-09-08 12:11:30 362

原创 C++中变量声明顺序的不同导致不同的运行效果嘛?

输入移动位数n,然后接受用户输入的四个字符,每个字符向后移动n位实现凯撒密码加密。例如,输入n为3,再输入abcd,输出defg。只考虑小写字母的情况下,部分代码如下: int n; char c[4]; cin>>n; cin>>c; for(int i=0;i<4;i++) { ...

2019-05-27 12:11:25 142

原创 贝塞尔曲线

一阶贝塞尔(直线)一阶贝赛尔曲线上的由两个点确定 P0 和P1,当t在0--->1区间上递增时,根据此会得到多个点的坐标,其实这些的点就是一条直线上的点。B(t) = P0 + (P1-P0)*tB(t) = (1-t)P0 + tP1//=>B(t).x = (1-t)P0.x + tP1.xB(t).y = (1-t)P0.y + tP1.y### 二阶贝...

2019-03-14 10:30:55 90

原创 JQuery和Canvas

利用JQuery进行Canvas相关程序设计在时候,一定要区分清楚JQuery对象和Dom对象。例如最常见的声明Canvas在HTML为:<canvas id="canvas" width="600" height="400"> do not support canvas</canvas>此时,如果要获取CanvasRenderingContex...

2019-03-12 23:13:30 3034

转载 C/C++ 彻底解决结构体的sizeof问题

原文地址:C/C++ 彻底解决结构体的sizeof问题引言相信在大多数人开始学习编程时,老师都会谈到各种数据类型的size问题。比如说一个int类型的变量大小是4byte,一个char类型的变量是1byte。这些问题都很好解决,但是当谈到一个结构体的大小时,答案往往就不那么肯定了。这个问题我困惑了很久,查找了不少资料后终于有所体会。现在特意记录下来,谈一谈计算机中各种数据类型的size到底是...

2019-03-08 11:04:33 122

原创 VSCode中使用GitHub

1. 下载Git并安装,并添加路径到环境变量。输入git --version如果显示版本号,则安装成功。2. 在GitHub上新建一个仓库。例如:myrepo3. 在本地新建一个文件夹,作为VSCode代码的工作文件夹。例如:mycode4. mycode既是VSCode的代码工作文件夹又应该是Git的本地仓库。在命令行方式下进入mycode,输入git initg...

2019-03-06 13:16:44 16985 1

原创 一些有意思的代码块(不定期更新)

1. C++数字求反(20190302)int reverseNumber(int num){ int temp = 0; while(num) { temp = temp*10 + num%10; num /=10; } return temp;}2. Python让下标更有指示意义NAME,AGE,PA...

2019-03-02 08:44:53 174

转载 python的多进程与多线程知识点提炼

结合廖雪峰大神的教程进行了一些知识点的提炼。廖神的教程地址为:原文地址1. 进程Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,...

2019-01-20 20:44:44 181

原创 python识别验证码

验证码是页面上非常常见的一种识别用户身份的方式,如图所示:在使用爬虫爬取网页时,我们要对验证码进行自动的识别和填写。这里使用tesseract来完成对验证码的扫描识别。1. 安装tesseract。tesseract是一个独立的软件,并不是python模块,需要单独的下载并安装。下载地址:https://github.com/UB-Mannheim/tesseract/wiki...

2019-01-13 17:53:19 4202

原创 用Selenium进行百度搜索结果简单提取

利用Selenium访问百度,输入搜索关键字后,提取搜索页面的查询结果。1. 以headless chrome方式访问百度首页#chrome选项options = webdriver.ChromeOptions()#使用无头chromeoptions.set_headless()#配置并获得WebDriver对象driver = webdriver.Chrome( 'D...

2019-01-12 13:45:06 6622

原创 Selenium启动headless Chrome和Firefox

新版本的selenium已经明确警告将不支持PhantomJS,建议使用headless的Chrome或FireFox。两者使用方式非常类似,基本步骤为:下载驱动 创建选项,设定headless 创建WebDriver,指定驱动位置和选项 对URL发起请求,获得结果,进行解析Chrome驱动的下载路径为:https://chromedriver.storage.googleap...

2019-01-12 09:21:11 581

原创 用Python模仿名人的风格写一句话

抓取某位名人的演讲内容,通过对演讲内容用词的分析,按照这篇演讲的风格模拟生成一段文字。整体思路是从网上抓取内容后对格式进行整理,提取文章中的所有单词。然后在统计每个单词后面衔接的单词的频次。例如:I believe I can fly, I believe I can touch the sky. 这句话中,单词I后面出现的单词是believe 2次,can 2次,而can后面出现的单词是fl...

2019-01-08 20:46:52 590

转载 解决VSCode终端中文乱码问题

VSCode终端其实调用的是cmd.exe,所以当这里出现中文乱码的时候要解决的是cmd的编码设置问题。可以通过chcp命令查看cmd的编码设置,GBK2312的代码页编号是936,然后改成utf-8的编码即可,utf-8对应的代码页编号是65001,所以执行chcp 65001就可以把cmd的编码设置成uft-8了,这样就解决了乱码问题1.查看原有编码2.执行chcp 650...

2019-01-05 10:23:16 2685

原创 windows下使用配置nginx + tornado + flask

使用nginx web服务器,但是windows下无法使用gunicorn和uwsgi,所以使用tornado充当wsgi,转载flask开发的应用。1. 下载windows版的nginx程序并解压。利用cmd进入目录后输入:start nginx.exe即可启动nginx服务器。启动后在浏览器中输入http://localhost会显示nginx的欢迎画面。如果未显示说明8...

2018-12-05 22:57:56 1998

原创 最小Flask环境搭建代码

开发环境:Web框架:flask                  数据库:mysql                  驱动: pymysql                  ORM: flask_sqlalchemy                  客户端:httpie                  日志:logging代码结构:app.py flask...

2018-12-04 16:22:09 109

转载 urlencode与unquote

原文地址当url地址含有中文或者“/”的时候,这是就需要用做urlencode一下编码转换。一、urlencodeurlencode的参数是词典,它可以将key-value这样的键值对转换成我们想要的格式。如果你用的是python2.*,urlencode在urllib.urlencode。如果使用的是python3,urlencode在urllib.parse.urlencode例...

2018-12-01 18:25:17 267

原创 Celery的简单环境搭建

要正常使用Celery(4.2.1版本)还需要RabbitMQ,Redis,还可以下载eventlet或gevent用于并发执行。1. 配置RabbitMQ详细的RabbitMQ的安装配置可以参考这篇文章:windows下安装RabbitMQ及操作常用命令强调几个需要注意的点:1.1 最好配置一下RabbitMQ的路径,这样可以直接使用RabbitMQ的若干.bat格式的指令。...

2018-12-01 13:15:35 298

原创 一边遍历列表一边删除

错误的做法1:n = [1,2,3,4,5,6,7,8,9,10]for x in n: n.remove(x)print(n)运行结果:[2, 4, 6, 8, 10]原因很简单,for会去获取列表的迭代器,每次循环时按次序获取内容,这次取n下次循环就取n+1,但是循环体中对列表做remove操作,导致每次循环列表中的元素都会前移一位,也就是n+1变为了n,而n+...

2018-11-12 20:08:16 1475

原创 Python协程

当一个大型任务由多个小任务组成时,为了让任务在执行时更有效率,避免无谓的等待,我们总是让单位时间内能有更多的任务被执行,以期更早的完成全部任务。经常使用的方式包括多进程并行,单进程多线程并发和单进程单线程的异步。本文讨论的就是第三种方式。所有的任务以异步的形式在单进程单线程中执行,多任务之间的协调与调度交由事件循环(Event Loop)控制,我们将这样的并发任务处置方式也成为协程(Corou...

2018-11-01 10:22:55 260

转载 Python黑魔法 --- 异步IO( asyncio) 协程

python asyncio网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法。下面将简单介绍asyncio的使用。实现协程的不仅仅是async...

2018-10-30 18:55:13 505

原创 使用Nginx和Gunicorn在服务器上部署Flask项目

Flask作为一个Web框架虽然自带Web服务器,但其Web服务器主要用于开发阶段的测试,在生产环境中应该选择更专业的Web服务器。当然在Web框架和Web服务器之间还需要一个实现了WSGI协议的容器协助Web框架和Web服务器之间通信。常用的WSGI协议容器有Gunicorn和uWSGI,当然也可以使用Tornado(还需要配合其它异步框架)。常用的Web服务器有Nginx、Apache...

2018-09-19 10:41:32 2031

Android4游戏入门经典 原书第二版

经典的安卓游戏开发入门,借助3个游戏实例循序渐进的介绍了安卓游戏开发过程中游戏框架的搭建,各种资源文件的加载及使用,OpenGL ES 2D/3D等技术

2014-08-21

Apache Kafka(英文版)

好像kafka的相关资料并不是很多,这是一本英文参考书,供大家下载学习

2014-08-19

C++傻瓜书第7版(英文版)

傻瓜书系列的一贯风格,适合初学者的入门读物

2014-08-19

App Inventor 2 Essentials

App Inventor 2的开发书籍,App Inventor与Scratch类似,利用可视化拖拽实现复杂的编程逻辑,特别适合针对少儿的编程训练和学习

2018-02-06

如何用Cocos2d-android写一个小游戏案例源代码

如何用Cocos2d-android写一个小游戏案例源代码

2017-05-22

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除