自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件和芯片来改变世界

  • 博客(2274)
  • 资源 (33)
  • 论坛 (34)
  • 收藏
  • 关注

原创 老蔡学堂

优惠大卖,全部课程(任选5门)一口价:49元,需要请发送邮件:9073204@qq.com玩转人工智能库-深入浅出OpenCVhttps://edu.csdn.net/course/detail/26616单片机编译器之链接器https://edu.csdn.net/course/detail/8437比特币源码入门教程https://edu.csdn.net/course/d...

2016-06-24 07:13:24 11290 2

原创 深入浅出matplotlib(14):显示简单的数学曲线

使用matplotlib来显示数学曲线是常常使用的功能,因为它是非常简单、灵活和高效。如果你使用绘图软件来显示,可能就不如意了。又或者使用办公软件来生成曲线,就会非常麻烦,没有使用matplotlib这么方便了。但是在实际生活里,经常需要使用这些曲线作为演示,也需要这些曲线来解释很多工作中的成果。比如学生记忆能力与时间的关系,比如学生的体能与训练时间的关系。总之,很多需要绘图的地方,现在已经不用笔和纸去画了,但是也不至于使用那么专业的软件,比如AUTOCAD去画一个简单的数学曲线。虽然有一些人喜欢使用EXC

2020-12-01 21:06:52 13

原创 深入浅出matplotlib(13):旋转向量示意图

作为一个数学老师,当你需要讲向量时,需要使用一些示意图,或者需要动态地修改一下向量的旋转关系。如果作为一个物理老师,也需要讲述力向量的方向和合成。如果需要现场可以动态在修改示意图时,你再采用预先绘制的方式,就不会适用,这时就可以采用matplotlib来动态编程,以便课堂上动态在修改,也可以分发给学生去研究和探索更多的可能性。如果只是给一个PPT,只能看看,而不能动手,也不能更进一步研究这些问题。这样对于学生来说,印象不会很深刻,也不会培训学生动手能力。下面就来介绍一下,怎么样构造下面的旋转示意图.

2020-12-01 19:54:31 21

原创 深入浅出matplotlib(12):椭圆示意图

前面学习了圆的示意图,如果让你再做出一个椭圆的示意图呢,你也许以为很简单的,其实不是这样的。因为椭圆的方程需要改写才可以使用到程序里,否则画出来的图,与直线相交的图不在同一个坐标点上。这是由于实际画图的坐标轴不是按比例显示所致,要适应这种情况,就需要使用角度来计算椭圆坐标的点,这样无论比例怎么变化,但是角度不会变形。椭圆上坐标点公式:xp = r*cos(p) yp = r*sin(p)可以得到tan(p)= yp/xp,得到:yp = xp*tan(p)把上式代码椭圆方程:x^2.

2020-11-30 17:28:27 24

原创 深入浅出matplotlib(11):用直线方式画圆

前面学习过使用matplotlib的点函数的方式来画圆弧,显然是可以完成这个任务的,不过有一点问题,就是绘图的速度有点慢,如果绘的点比较多,就更加慢了。其实示意图都不是要求那么完善的圆,所以可以使用直线来逼近,这样也是很难看得出来的,并且速度比点的方式快很多。因此使用画直线的函数plt.plot的方式,主要用来提高显示的速度。在这里主要来学习显示如下图:在这张图里,绘制了不同的圆,有的是使用点划直线方式显示,有的是使用实线,有的是不同圆叠加在一起形成圆环。不管怎么样显示,主要都是使用画圆的参数公

2020-11-29 22:26:53 31

原创 深入浅出matplotlib(10):构造圆弧示意图

在很多时候,都需要构造一些示意图,方便观看数据,明白数据的意义。特别是在学校里做老师,或者研究生的论文配图。虽然很多图可以使用绘图软件,或者编辑软件来完成,但是修改起来就比较麻烦一些,如果使用matplotlib来生成,修改一些参数就可以重新生成新的图案,比使用绘图软件或编辑软件来得还快。特别是老师要求课堂上可以动态在修改参数的演示图,就更加来得方便了。下面就是假设老师要画的一个示意图,如图:在这个图里,首先要使用前面学习过的知识来构造一个XY的辅助坐标系,有了这个辅助坐标系,就可以看到X轴和Y轴的

2020-11-26 20:13:11 46

原创 深入浅出matplotlib(9):知道两点坐标画直线

有时候需要演示一下直线是怎么样生成的,就可以使用matplotlib作为教学工具,把演示过程动态化,并且可视化,也可以让学生快速地学习和修改直线的算法。知道两点坐标画直线有很多种方法,这里主要介绍使用DDA算法:DDA算法是计算机图形学中最简单的绘制直线算法。其主要思想是由直线公式y = kx + b推导出来的。我们已知直线段两个端点P0(x0,y0)和P1(x1,y1),就能求出 k 和 b 。在k,b均求出的条件下,只要知道一个x值,我们就能计算出一个y值。如果x的步进为1(x每次加1.

2020-11-24 17:36:32 109 1

原创 深入浅出matplotlib(8):辅助指示坐标轴和公式显示

在matplotlib里,虽然有数据的坐标轴设置好了,这个只是为了画数据显示使用的,如果用它来作标示,又有点不足。比如绘图的区域是X轴和Y轴从-10到100,那么原点的位置,就不在(0,0)位置了。这时候,如果图里内容比较复杂,那么看起来就不容易找到原点。为了解决这个问题,需要在坐标点(0,0)的地方显示一个指示用的坐标轴,这样一目了然,就明白图里的数量关系与位置情况。因此需要添加一个辅助坐标系,那么需要怎么来做呢?由于matplotlib里没有现成的函数,一次性地实现这个功能,需要使用它多个函数来

2020-11-23 09:29:21 366

原创 深入浅出matplotlib(7):图形失真

在某些方面的应用,需要对画图有一个严格的要求,比如不能把一个长方形显示出来是一个正方形,也不能把一个正方形显示为一个长方形。对于这样显示的问题,简单地来说叫做失真,虽然数值上的坐标点的距离是相等的,但是在屏幕上显示的距离不一样,导致失真。假如老师在教小学生认识正方形,但是老师做出来的课件老是显示为长方形,让学生无法认识正方形。为什么会出现这个问题呢?因为计算机的屏幕是长方形,因此很多程序为了尽可能利用屏幕显示,往往不是数学上严格的比例来显示的,会有一定的比例缩放,这时就会导致失真出现。可以看一下图:

2020-11-21 08:42:08 46

原创 深入浅出matplotlib(6):颜色

要想把数据表示得生动的趣,往往需要使用多种颜色来配合,才可以让数据得已区分开来。那么就来学习一下matplotlib的颜色。在matplotlib里主要使用一些简单的字母来表示颜色,比如:‘k’表示黑色;‘b’表示蓝色‘c’表示青色‘g’表示绿色‘m’表示洋红‘r’表示红色‘y’黄色‘gray’或’grey’代表灰色‘lightgray’或’lightgrey’代表浅灰这些颜色都是常用的颜色,如果你想定义一些特别的颜色,上面这些颜色也许不会满足你的需求,那么怎么.

2020-11-21 07:47:06 54

原创 深入浅出matplotlib(5):坐标轴的标签和标题

当我们想要使用坐标系来表示数据的关系时,往往需要给坐标系进行命名,比如物理学上的时间-距离曲线,就会把X轴命名为时间,Y轴命名为距离,这样画出来的曲线就是时间-距离曲线。当我们想表示收入-时间曲线时,可以把X轴表示月份,把Y轴表示收入金额。类似的情况有很多,但是总需要给坐标轴进行一个命名,或者分配坐标轴的对应的数据。因此,对于画图来说,一定要标明坐标轴的名称,这时就需要使用到函数plt.xlabel()和plt.ylabel()。如下图所示:代码与图的关系:从上图里可以看到,这两行代码对

2020-11-19 10:22:12 59

原创 深入浅出matplotlib(4):网格线的颜色和刻度

有时候想显示的网格线与数据显示的曲线不一样,有明显的对比效应,最先想到的就是使用颜色。比如数据使用使用黑色,而网格使用蓝色。如下图就是显示蓝色的网格线:在这里还是使用plt.grid函数,这个函数的定义如下:matplotlib.pyplot.grid(b=None, which='major', axis='both', **kwargs)由于支持的参数很多,这里主要介绍这几个:b: 这个参数是表示是否显示网格线。如果这个参数为None,但后面有别的参数,说明想显示网格线,就会自动设置

2020-11-14 23:12:50 114

原创 深入浅出matplotlib(3):设置绘图区域大小

前面学习了怎么样找到区域,也就是找到可以绘画的地方,现在就相当于画家有了笔和纸,这样要考虑怎么样去布局这张白纸了。如果学习中学的数学,肯定知道画曲线时,先要确定一个坐标系,通常就是画出直角坐标系。要想画出直角坐标系,那么就需要确定原点的位置和两条坐标轴的方向,当然还要确定两条坐标轴的长度,以及每个坐标轴的刻度的大小。那么你就会好奇地问,matplotlib里怎么样设置坐标轴的刻度呢?带着这个问题,下面通过例子演示:在这里可以看到,坐标系的原点是在(-10,-10),最大值分别是10。要设置这样的坐标

2020-11-09 22:15:14 124

原创 深入浅出matplotlib(2):绘图区域

假设我们要开始学习画画,那么首先要准备好的工具就是笔和纸,接着根据需要确认纸的方向。一般情况下,纸张都是长方形,要确认它是横着摆,还是竖着摆,不同的摆放会导致显示的空间布局。计算机的发展,也是这样的,可以认为计算机的显示器就是一张白纸,显示器怎么样摆放呢?往往是横着摆放。当我们想要在计算机显示器上显示东西时,那么就需要了解显示器屏幕的坐标布局,一般情况下是如下图所示:屏幕X轴的方向是从左往右,屏幕Y轴的方向是从上往下,这是计算机里显示器的基本方向,但是当你想在这张白纸里显示数据时,并不想按Y轴的方向

2020-11-08 13:46:49 76

原创 深入浅出matplotlib(1):为什么要使用matplotlib

第一次工业革命是蒸汽时代,第二次工业革命是电气时代,第三次工业革命是信息时代,马上要迎来第四次工业革命—智能时代。我们知道整个世界主要有三大元素组成:物质、能源和智慧。前两次的工业革命都是则重于物质和能源的进步,后两次的工业革命却是智慧的进步。在信息化时代,已经把世界改造得天翻地覆,那么随着智能时代的到来,将是现在无法想像的。比如所有汽车都具有自动驾驶之后,会不会汽车就是一种机器人的化身?这时马路上所有汽车都是能相互说话,相互配合,像一群蜜蜂一样相互配合之后,做出来的成就远远超出一个蜜蜂的能力。如果汽车真的

2020-11-07 18:51:59 162

原创 《Fluent Python》读书笔记-2.9

如果你有很多数组要进行保存数据,并且进行查看和运算,那么你就必须要熟悉memorview的使用,否则你会导致处理数据效率低下。使用memorviewmemorview类是一个共享内存数据的类,当你使用它来切片数组时,并不需要拷贝数据就可以查看。因此,它被大量地使用在NumPy库里。memoryview本质上是Python本身的一种NumPy数组结构。它允许您在数据结构之间共享内存(比如PIL图像、SQLlite数据库、NumPy数组等),无需预先复制。这对于大型数据集是非常重要的。m..

2020-11-07 11:23:42 114

原创 《Fluent Python》读书笔记-2.8

在序列容器里有一个经常的操作,那就是排序。list.sort 和 内置sorted函数list.sort方法是把列表在原地进行排序的操作,也就是说不产生新的列表返回,它执行结束之后返回None。此方法返回None表示它不创建新的列表对象返回,并且它在原地修改了列表,这一个编程习惯在Python里形成了传统。因而所有Python的API函数或方法都遵守这个偏好,明确告诉调用者,它在原地对对象作了更改,并没有新对象创建返回。如果你去查看一下,会发现random.shuffle方法也遵守这个规..

2020-11-06 18:19:26 61

原创 《Fluent Python》读书笔记-2.7

大家经常使用Python就会发现有一些公共操作,比如对序列容器进行并接和重复。在Python里,主要通过加号(+)和乘号(*)来实现。+和*对容器操作Python编译器的开发人员使用+和*来实现对序列容器进行串联操作。当我们使用+来串联时,一般要求两个参数都是同一个类型的序列容器对象,当拼接完成之后是重新创建了一个新的对象,并不会影响原来的对象。为了拼接多个相同的对象,可以采用*来操作:>>> l = [1, 2, 3]>>> l * 5..

2020-11-05 15:56:40 114

原创 《Fluent Python》读书笔记-2.6

切片(Slicing)在所有序列容器,包括列表、元组、字符串等等,它们都支持切片操作,这是Python语言的强大武器,本文将开始学习切片的高级使用技巧。为什么切片和Range操作都不包括最后一项?从Python语法里知道,当进行切片操作时,比如mylist[0,2]的操作,并不包括最后一项[2]。同样range迭代生成也是不包括最后一项,这是到底是什么原因呢?其实它跟C语言和其它很多语言一样,下标变量的开始都是从0开始计算的。使用这样的约定有以下好处:1)容易看出来切片操作或ran.

2020-11-05 09:49:18 66

原创 《Fluent Python》读书笔记-2.5

前面学习了元组拆包,用处很多,可以用来多个变量并行赋值、交换数据、调用函数、函数返回值分拆等等。接着思考这样一个问题,如果一个生成器表达式产生不定项的数据,怎么样来进行并行赋值呢?使用星号(*)来接收不定项的赋值在Python的函数里,常常使用*args来接收不定项的函数参数,这是Python的重要编程规则,因此在Python 3以后,也把这个编程规则进行扩展,应用到并行赋值方面:>>> a, b, *rest = range(5)>>> a, b,.

2020-11-04 12:19:38 84

原创 《Fluent Python》读书笔记-2.4

元组(tuple)不仅仅是不可改变的列表在很多Python的教材里都是把元组当作不可修改的列表来看待,其实元组不仅如此,还有另外一个大作用,当作没有记录名称的记录数据表示。这种使用方法往往容易被人们忽略它,导致广泛地缺乏认识到它的作用。元组作为记录当你把元组当作记录使用时,元组里每一项当作一个字段,而字段的位置就表示了它的意义。比如(姓名,姓别,学历),这个元组第一项就是表示姓名,所有数据记录必须按照这个顺序来排列。如果你只是把元组当作不变的列表使用时,其实元组里有多少项,或者每项的..

2020-11-03 17:31:25 114

原创 《Fluent Python》读书笔记-2.3

接着下来介绍一下怎么样使用列表解析来生成笛卡尔积,其实就是每一项由两个或多个列表的项联组成。如下图所示:笛卡尔积列表解析能从两个或多个列表联合生成笛卡尔积,每一项由每个列表里的项构造,然后保存为一个元组,把这些元组构造成一个列表,这个列表的长度等于所有输入列表长度的乘积。下面的例子:在这里有3种类型和4种花色的牌,可以组成12种结果。接着下来举一个小的例子,假如产生T-shirt有两种颜色和三个尺码,使用列表解析来生成,共有6项:>>> colors..

2020-11-03 14:09:59 81

原创 《Fluent Python》读书笔记-2.2

在众多的序列型的容器里,最基本的容器是列表(list),它不仅可修改而且可以昆合不同的数据类型。我相信所有人都学会它的基本操作,但是有点难度的就是列表解析(list comprehension)了。一种强大的构建列表的方法,但由于语法的不熟悉,或不理解,它的作用被低估计了。掌握列表解析就是打开生成表达式的大门,生成表达式在其他用途中,它可以产生元素来填充任何类型的序列。因此通过对比列表解析表达式和生成表达式的方式来理解它们的作用。列表解析(List Comprehensions)和生成表达式(Ge.

2020-11-02 11:40:53 73

原创 《Fluent Python》读书笔记-2.1

Python的创建人Guido在创建Python之前,他用了10年的时间在开发一种叫ABC的语言,这种语言是为初学者量身定制。在ABC里定义了很多像目前Python的属性:序列范型操作、内置元组和映射类型、缩进排版结构、没有声明的强类型变量等等。因此,Python对用户这么友好并不是偶然决定的,而是来源于原来ABC语言的一些特性的继承。 Python从ABC语言继承了序列统一操作的习惯,字符串、列表、字节序列、数组、XML元素集和数据库的结果集,都采用一套公共的操作,比如迭代访问、切片、排序和并接...

2020-11-01 17:44:02 106

原创 对比学习Python格式化字符串的三种方法(%,format(),f-string)

技术总是随着时代进步而不断地往前推进,也许因为人们对自己的需求不太清楚,也许是由于当时思维模式不对,也许是习惯的力量。在Python的功能里,也是一步一步地往前推进,它的易用性也是一步一步地更方便了。Python 3.6 引入了新的字符串格式化方式 f-string,与其它格式化方式相比,不仅简洁明了,可读性更好,更不容易出错,而且运行效率也更高。你应该马上开始使用这种新的格式化方式,本文将解释其原因与具体用法。但在此之前,让我们先看一下 f-string 之前的字符串格式化方式。 所有编程开发人...

2020-11-01 10:11:25 127

原创 Python里变量进行类型备注

众所周知Python是动态语言,变量可以动态地赋值,函数的参数变量也可以动态地改变类型,但是有时候写出下面这样的代码:#学习算法笔记-蔡军生(qq:9073204)#https://mysoft.blog.csdn.net/#2020-10-30def add(x, y): return x + yprint(add(1,2))print(add(1, 'abc'))突然出现一个错误,让你措手不及,这个错误提示如下:Traceback (most recent call

2020-10-31 20:40:34 97

原创 Python从zip文件里导入包

有时候为了节省空间,可以把包压缩成zip文件,这样方便管理,方便上传到网络上,也方便拷贝。但是有没有方法可以直接使用zip文件的包,而不需要解压出来呢?这是有的。 先创建一个目录如下:然后把demo目录使用压缩软件,或者使用Python里的zip模块,就可以生成压缩文件mylib.zip。在目录demo中创建__init__.py文件,然后在文件里输入下面内容:#学习算法笔记-蔡军生(qq:9073204)#https://mysoft.blog.csdn.net/#2020-1...

2020-10-30 19:35:30 110

原创 Python对于包的使用

随着对Python学习的深入,慢慢就会成长起来,这时薪水也会水高船涨。这是因为你的代码越写越多,积累各种代码模块也越来越多,对于老板布置的任务也越来越得心应手,对于客户提出的要求也越来越随心所欲。一个成长起来的程序员,与初入门的程序员的区别在哪里呢?显然不仅仅是薪水的差别,关键还是能力的差别。当然,能力表现有很多方面,比如处理业务的熟练程度,又或者与同事的配合程度,又或者对公司的流程了如指掌等等。在我认为,一个熟悉程序与入门程序员的最大区别是在于积累。熟练程序之所以这么快完成任务,是因为他的效率比较高,效率

2020-10-30 19:16:16 52

原创 Python里__all__变量的作用

在Python的模块里,要想像C语言编写的DLL动态连接库一样,可以提供函数的接口名称,就需要使用__all__变量了。通过这个特性,可以控制哪些函数被外面引用,哪些不能看见。这对一个大工程的软件来说是至关重要,因为没有控制的暴露,会导致别的软件开发人员乱用,从而让软件调用之间出现隐形的问题。比如只给出一个接口的组件,肯定比给出一千个接口的组件使用起来简单。因此,在一个团队的开发配合中,一定要明确这样一条准则:能少不能多,够用就好。把无关重要的接口暴露出来,就会导致更多的问题。__all__ = ['

2020-10-30 17:30:23 397 1

原创 Python -m abc和Python abc.py的区别

学了一段时间Python语言之后,很多人开始编写复杂的软件,这时代码写在一个文件里,已经不太可能。另外,自己想写所有的功能代码也不太可能了,更何况还有老板的deadline。还有不断地重复地造轮子也不是办法,如果有相同的功能,又可以控制的代码,肯定先用这种方式。这时就需要调用别人的模块组件,在调用别人的模块组件时,也许想测试一下它的功能是否够用。这时候再想使用Python abc.py的方式来运行模块的代码,就比较麻烦了,首先你需要找到模块代码所在目录,另外在那个目录下运行,又会导致很多临时文件产生,以及与

2020-10-30 11:07:33 80

原创 Python开发人员常犯的几个重大错误

Python 无疑是当今使用最广泛的编程语言,特别是进入人工智能时代,已经成为人工智能开发的主要语言,甚至小学三年级就已经教学该语言。它之所以如此流行,很大程度上是由于简单的语法和老少皆宜的可读性,这使得它非常容易使用。初学者之所以喜欢 Python,是因为它给人一种感觉就像是用英语写一段伪代码一样。但是,无论你有多么丰富的经验,也无论你已经研究过多少种语言,切换到 Python 并不能保证你能做到平稳过渡。具有面向对象编程背景的开发人员很容易忽略 Python 的常用特性,或者说python范式编程。

2020-10-29 16:20:38 108

原创 Python多线程时使用屏障对象

如果你仔细地看了我前面的文章,会发现多线程同步里,有已经介绍了锁和事件对象进行同步,接着下来介绍一个比较不一样的同步对象:屏障(threading.Barrier)。屏障对象在多线程同步中设置一道门,而这扇门有一把锁,需要一定数量的线程到达之后才可以解锁。如果先到的线程,就会等待,直到数量满足。这就好比组织一次旅游,所有游客到达大巴时才会开车出发,不会因为几个人先上车,就让大巴开走。所有人到达大巴的事件,就叫做屏障事件。Barrier(parties, action=None, timeout=N.

2020-10-29 10:52:49 91

原创 Python使用事件信号进行线程同步

线程同步除了使用线程锁之外,还可以使用事件信号Event类。为什么要使用事件信号呢?其实从生活中的例子就可以懂得这个道理,比如两个人一起煮饭。一个人洗锅,一个人洗米。如果先洗米的人干活比较快,或者说比较懒,只洗一次米,洗完的米就立即倒到锅里,而另外一个还没有把锅洗干净,这时会发生什么呢?不是给洗锅的人一顿骂,就是一顿打了。因为干净的米,放到不干净的锅,那么最后的结果还是不干净的,相当于白做了工作。所以在生活中,两个一起干活时,肯定会让先洗完米的人等一下,直到洗锅的人把锅刷干净,就不会发生这样的事情了。在多线

2020-10-29 09:50:31 43 1

原创 Python使用线程锁

随着技术不断地发展,之前的CPU只有一个核心,现在已经有多达几十个,甚至几百个。这就意味着多线程的程序可以让每个线程可以独占一个CPU核心来运行了。既然每个核心是独立的,那么就会像多人爬山,总有人跑得快,每个人到达山顶的顺序会不一样。如果让多人接力地送一批物资到山上,那么这批人就必须要配合才行,否则中间掉链子。同理,在多线程的程序里,由于CPU的时间片轮转不同,导致线程执行顺序不确定;多核心存在,导致每个核心运行的先后顺序也不一样。因此,如果有一个资源是独占的,必须让多个线程配合才可以执行下去。比如在电脑里

2020-10-29 09:01:42 50 1

原创 Python多线程的使用

有很多人一直无法理解为什么要使用多线程,其实可以这样理解,就像一条高速公路,如果每次只让一辆货车去运货,显然跑得再快,也只是一辆车,整条高速公路还是有空的地方,这样达不到高效地使用高速公路。如果多让几辆车去运货,就不一样的了。所以多线程就像多几辆车一样的,CPU运行得很快,如果只有一个线程运行,那么就像高速公路一样有空闲的地方。多个线程运行起来,整个CPU的效率就整体地提高了效率。当然,不是线程越多越好,在线程达到一定的数量,就会到达峰值,具体是多少没有定数,这个要看任务是做什么。 在Pyth...

2020-10-28 15:47:36 72 1

原创 Python极简地创建HTTP服务器

在所有人的记忆里,创建一个HTTP服务器,也许是非常复杂的,动则几个月的工作量,这是对大型的网站也许是这样的。不过,如果只是想在自己的测试领域里做一下测试,或者说是辅助型的服务器时,就可以非常简单了。又或者是在树莓派这样的嵌入式设备里的小网站,就可以使用简单的服务器了。创建简单的服务器,一定是连接非常少,对性能要求不高,以及没有什么容错机制,也没有什么DNS,也没有动态平衡等等。 在Python标准库中内置了一些测试的HTTP服务器,这些内容在http.server模块中,一般用来测试,或者简单的...

2020-10-28 09:36:37 92

原创 Python使用HTTP协议下载文件

HTTP协议是非常重要的,如果没有HTTP协议就可以说没有互联网。因为浏览所有网页,都是来源于HTTP协议的支持,不但包括新闻网站,还包括购物网站,还有众多的搜索网站。在Python里http.client模块提供了一些类,可以向HTTP服务器发送请求,并读取服务器的响应。 首先要确定服务器的URL连接,然后创建HTTPConnection对象且向服务器发起连接,然后调用request向服务器发送请求,最后调用getresponse获取返回对象。通过返回对象,就可以读取服务器所响应的消息内容。...

2020-10-28 08:42:43 68

原创 Python的UDPServer类的使用

Python的UDPServer类的使用 前面学习过TCPServer类的使用,如果你没有学过,赶紧回头先看它,否则就不会明白这里的知识。创建服务器对象UDPServer之后,调用serve_forever函数启动一个循环事件,可以不断地接收来自客户端的请求,直到关闭为止。在这里也需要继承BaseRequestHandler类,重载handle方法,这样才可以接收UDP客户端发送过来的消息,同时回应客户端。在这里要注意self.request,它是有两个成员,self.request[0]是表示U...

2020-10-27 16:23:57 86

原创 Python的TCPServer类的使用

前面学习使用Socket来创建TCP服务器,但是那样什么都得从头来做,有时候使用起来比较麻烦一些,如果再往前走一步,就是提供一个好用一点的TCP服务器,那么就更加好了。因此Python的标准库里,又提供了这样的功能,它是在模块socketserver里面。 由于socketserver里进行封装,如果不了解它的使用方式,也是无从下手的,即使它好用,也是船家佬捡到犁不会使。作为软件开发人员,这时候就要不怕懒的精神了,一小步一小步地往前拱,总会学得会的。创建服务器对象TCPServer之后,调用ser...

2020-10-27 15:47:22 80

原创 也来谈谈造芯之路

芯片,当前无疑是最为紧急的商品;芯片的政策,无疑最需要关注;芯片的方向,无疑成为当前最为关心的事情。在受到国外无端打压之下,怎么样才能走出一条造心之路呢? 有人看到各地有烂尾的项目,就开始质疑造芯的项目了。其实,烂尾的项目是一定会存在的,因为市场经济,它不是计划经济。按照市场经济的规律,一定会出现优胜劣汰,不可能所有项目都是成功的,总会有项目死掉,可能100个项目里,99个死掉了,只有剩下一个的现象。比如美国的INTEL公司只有一个,其它数百数千个公司都已经死掉了。因此,要想让芯片发展起来,风险是...

2020-10-27 11:39:52 65

milang 1.0.5

本项目主要开发 学习 讨论小语 milang 编程语言 它是以python语法为基础 然后改进它语法 增加直接生成机器码 混合C++的优点 增加基于寄存器的虚拟机实现

2014-08-03

milang 1.0.4

本项目主要开发 学习 讨论小语 milang 编程语言 它是以python语法为基础 然后改进它语法 增加直接生成机器码 混合C++的优点 增加基于寄存器的虚拟机实现

2014-07-13

milang 1.0.3

本项目主要开发、学习、讨论小语(milang)编程语言,它是以python语法为基础,然后改进它语法、增加直接生成机器码,混合C++的优点,增加基于寄存器的虚拟机实现。

2014-06-07

Milang 1.0.2

本项目主要开发、学习、讨论小语(milang)编程语言,它是以python语法为基础,然后改进它语法、增加直接生成机器码,混合C++的优点,增加基于寄存器的虚拟机实现。 代码下载和上传见: https://code.csdn.net/caimouse/milang

2014-06-02

milang开发工具

组合了notepad和python 3.4的开发工具,可以集编辑和运行、结果查看为一体。

2014-05-24

svm_hog_data.rar

使用到LineSVC里进行机器学习的训练数据,用来训练手写识别。 配套专栏文章使用,https://blog.csdn.net/caimouse/article/details/104599920。

2020-03-02

实现numpy的C++库扩展

使用C++来扩展numpy里的数据计算,这时就需要使用numpy的扩展库功能了,下面就来提供一个使用C++编写numpy扩展库的模板,这样大家就要减少很多弯路,减少跌入坑里的成本。这个扩展库的模板是从mahotas库里抽取出来的,经过最大化的简化,这样更加容易理解,更方便学习。

2019-11-24

STM32F407VET6工程模板

玩转STM32里文章配置的代码,这里学习的第一个工程代码,可以作为后继开发的模板工程。

2019-03-14

python web py入门配套源代码

python web py入门- 实现论坛,开发技术:后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS。

2018-02-23

webpy演示例子1

webpy演示例子1, 用于配套文章相关资源。python web py入门(9)- 论坛首页的模板中模板 前面已经提到一个模板中可以套用另外一个模板,现在就来看看这个论坛基本布局模板是怎么样的?

2018-02-21

胶囊模型的代码

胶囊模型的代码在以下论文中使用: “Dynamic Routing between Capsules” by Sara Sabour, Nickolas Frosst, Geoffrey E. Hinton. 要求 TensorFlow ( 访问 http://www.tensorflow.org 了解如何安装和升级) NumPy (详见http://www.numpy.org/) GPU

2018-02-02

C++读写json文件

https://github.com/nlohmann/json 最好用的C++读写json库

2017-12-09

python抓取天气并分析 实例源码

Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报,原理是根据url找到网站截取相应的数据展现。 python抓取广州天气并分析 实例源码

2017-08-28

wix3.11版本安装工具

wix3.11版本安装工具

2017-06-19

WiX3.10版本安装工具

WiX3.10版本安装工具

2017-06-19

GOOGLE的TPU论文

GOOGLE公开TPU的论文

2017-04-06

深度强化学习论文

DQN的论文

2017-03-17

书《深度学习》

2015年,深度学习三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在最新的《Nature》杂志首次合作的发表综述文章《Deep Learning》。本文为该综述文章的中文译文,深入浅出地介绍了深度学习的基本原理,核心优势和未来展望。

2017-03-13

手写识别的训练数据

MNIST训练数据

2017-03-10

俄罗斯方块游戏开发

俄罗斯方块游戏开发培训里的可执行文件,让大家可以查看相关的结果。以便是否参加培训。

2016-11-30

duilib界面库20161116

更新为VC2015编译的duilib,持续重构代码,使用最新的C++14的语法。

2016-11-16

duilib界面库20161017

duilib 界面库

2016-10-17

duilib界面库

duilib界面库,长期维护的界面库,在WIN10和VS2012上编译和开发、测试通过。

2016-10-10

国产8051模拟器

一款国产的8051模拟器(全部源代码) 本软件是一款8051模拟器,他的特点是可以模拟多处理器平台,在简单的多工作区间的界面上可以很方便的模拟8051处理器, 最重要的是这个单片机系统可以完全由你自己订制,你甚至可以随意创建自己的多单片机系统,什么SMP 基于串行总线的分布式系统,集群式系统,只要你能想到的,都可以办到,充分发挥你的想象力。现在1.0版本已经基本体现出了这种思想,在以后的版本中将使这一特性变的 更加强大!

2016-09-10

mysql开发管理工具

mysql数据库的开发管理工具。

2016-07-12

mysql-5.5.50-64

windows下的64位MYSQL的版本。

2016-07-10

python-3.4.4

python 3.4的32位的windows版本

2016-07-01

tinyxml2配套源码

在软件开发过程中,为了使软件有灵活的配置,特别像界面这样的配置,同时为了减轻重复开发的任务,需要把客户的个性化需求可以通过配置文件来修改,比如像界面的颜色配置,就可通过配置文件来修改,这时就可以采用XML文件来保存和修改这些参数配置。在不同软件之间进行通讯时,也可以采用XML协议来进行数据交换,特别像WEB服务的调用时,采用传送XML格式是基本的数据交换方式。基于这些任务的需求,需要软件开发人员会在C++里使用xml格式。

2016-06-27

protoc2.5执行文件

protoc执行文件

2016-06-24

protobuf 2.5

protobuf 2.5库代码和工具

2016-06-24

selenium的浏览器驱动

目前有很多的银行网站,还是以IE为标准的浏览器,因此这里主要采用IE为测试的例子,在这里可以下载不同版本的浏览器驱动,可以是32位的,也可以是64位的,根据自己的需要下载不同的版本。在本文章里,下载的是2.35.3版本:IEDriverServer.exe,把它放在目录f:\temp\里面。

2016-06-14

WIX制作C#应用程序安装包

WIX制作C#应用程序安装包

2016-05-26

pythoncn-3.4.3

1. 使用VS2012编译。 2. 修改在VC11.0的库下运行pythonw.exe出错误的BUG。

2015-05-04

caimouse的留言板

发表于 2020-01-02 最后回复 2020-05-14

开发大联盟,VC人员开放大聚会

发表于 2001-11-05 最后回复 2012-05-23

C++编译器源程序学习!!!!!!!!!!!!!!!!!1

发表于 2003-12-26 最后回复 2004-01-07

FastBT下载 1.0.3.66版 2003.12.25 放分 一小时结.

发表于 2003-12-26 最后回复 2003-12-26

发布最新版本FastBT 1.0.1.27 高兴放分

发表于 2003-11-21 最后回复 2003-12-10

有没有分析过传奇网络通迅?

发表于 2003-07-10 最后回复 2003-11-28

Visual Studio.net 2003 7cd 下载

发表于 2003-08-27 最后回复 2003-09-01

Visual Studio.net 2003 7cd 下载

发表于 2003-08-27 最后回复 2003-08-28

怎么样实现在资源管理器多一个盘号?

发表于 2003-07-24 最后回复 2003-07-31

深圳治安真差,我差点就被打死了!

发表于 2003-05-12 最后回复 2003-05-23

开放源码的P2P文件共享研究Gnucleus

发表于 2002-07-24 最后回复 2003-05-06

怎么样实现从播放器播放的声音录下来?

发表于 2003-03-11 最后回复 2003-03-19

QQ死机的BUG?不信你就试试了。

发表于 2003-02-20 最后回复 2003-02-26

大家把自己有的技能交流一下

发表于 2003-01-24 最后回复 2003-01-28

有不有程序员取这么好有GF啊?

发表于 2003-01-15 最后回复 2003-01-24

在C++BUILDER里怎么调试进入PASCAL?

发表于 2003-01-08 最后回复 2003-01-08

猜谜语送分

发表于 2003-01-07 最后回复 2003-01-07

操作系统源码分析网

发表于 2002-12-17 最后回复 2003-01-03

有人写过硬盘驱动程序吗?

发表于 2002-12-16 最后回复 2002-12-17

怎么样才能写出一个像TObject类CObject来?

发表于 2002-12-04 最后回复 2002-12-11

有空来我cbuilder论坛

发表于 2002-11-21 最后回复 2002-12-04

有空来我VC论坛

发表于 2002-11-25 最后回复 2002-11-26

开发DOS的操作系统,作为实时操作系统

发表于 2001-10-29 最后回复 2002-02-17

在局部网内用UDP通过代理服务器连接外面的人,怎么样用VC写通过代理呢?

发表于 2001-09-24 最后回复 2002-02-05

UDP 代理问题?

发表于 2002-01-24 最后回复 2002-01-24

怎么样设置像ICQ或OICQ这样服务器?

发表于 2001-12-29 最后回复 2001-12-29

我的钱哪去了?

发表于 2001-12-17 最后回复 2001-12-17

在VC中这个错误为什么出现的?

发表于 2001-11-30 最后回复 2001-12-13

谁能说出ICQ目录下各个DLL文件用处?给高分!!!!

发表于 2001-11-27 最后回复 2001-11-27

怎么样更新CLISTBOX

发表于 2001-11-14 最后回复 2001-11-14

谁有空就用C写个DOS操作系出来?XP可没有DOS啊

发表于 2001-10-26 最后回复 2001-11-13

为什么国内没有人写出像<<深入浅出MFC>>这样的好书

发表于 2001-11-08 最后回复 2001-11-08

用C++能写DOS操系统吗?

发表于 2001-10-31 最后回复 2001-10-31

我们能不能把NASM的使用手册译成中文吗

发表于 2001-10-30 最后回复 2001-10-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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