自定义博客皮肤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--用软件来改变世界

原创 什么是软件开发?

有一个销售的同事在会议上说,你们软件开发人员真好,坐在电脑前打打代码就可以完成工作了。还有一些对软件开发不懂的老板说,你们软件开发不就是写几行代码就可以了吗。可见,没有深入软件开发的了解,永远都是这么肤浅的认识。其实软件开发总共有11个过程:定义问题需求分析规划构造软件架构详细设计编码与调试单元测...

2017-09-30 16:38:30 3774 0

原创 python里使用reduce()函数

reduce()函数在库functools里,如果要使用它,要从这个库里导入。reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简化的结果,在计算机的算法里,大多数情况下,就是为了简单化。比如识别图像是否是一只猫,那么就是从众多...

2017-09-29 08:31:09 8810 0

原创 python里使用map()函数

在python里有一个函数map(),它有点高大上的感觉。或许你已经看过GOOGLE最挣钱的论文:“MapReduce: Simplified Data Processing on Large Clusters”Google的那篇MapReduce论文里说:Our abstraction is i...

2017-09-27 17:55:11 2837 0

原创 深入浅出Numpy-蔡军生-专题视频课程

随着人工智能的复兴,越来越多AI的架构采用Python语言来开发,因此学会Numpy处理数据,就成为当下急需的技能。人工智能其实就是数据处理方式,因此需要学习怎么样表示数据、以及数据处理方式,Numpy库就是人工智能里的基础,比如在TensorFlow应用非常广泛。...

2017-09-27 08:47:04 132 0

原创 python里除了继承修改类之外还有装饰器也能

python是面向对象的语言,它有类的继承,因此它是可以修改基类函数的功能。但是除了继承之外,类函数的功能也可以使用装饰器来修改,这种功能叫做装饰类。为了学习装饰类,需要好好地查看下面的代码:#python 3.6 #定义装饰器函数 def decorator(aClass): class...

2017-09-26 17:28:48 1113 0

原创 python里装饰器级连的使用

从前面的文章来看,学会了为什么要使用装饰器,也明白了装饰器是什么了,但是你也许会问,是否可以在装饰器前面再添加一层装饰器,会怎么样呢?就像大楼一样,一层一层地叠在一起。其实是可以的。现在我们就来学习这种堆叠技术,与类的继承是有相似之处,可以不断地继承下去。代码如下:#python 3.6 def ...

2017-09-26 16:40:50 633 0

原创 python里使用带参数的装饰器

在前面一文《python里为什么需要使用装饰器(decorator)》里,我们学习了为什么需要装饰器,知道装饰器就是为了不修改原来函数的代码,又达到增加功能的作用。其实为了装饰器更通用化,那么装饰器是否也可以带参数呢?其实是可以的,这样更加通用化了,达到共享极点。在前面也学习《为什么要使用闭包(c...

2017-09-24 18:22:01 4815 0

原创 python里为什么需要使用装饰器(decorator)

为什么需要使用装饰器呢?其实很多人学习python之后都会问这个问题。这一次,我来深入地学习一下什么是装饰器,以及为什么需要它。其实这个装饰器就是我们这样的程序员太“懒”了,基本上什么事情都想少做,追求是DRY,那么什么是DRY,如下:DRY(Don't repeat yourself ...

2017-09-24 17:39:31 6236 1

原创 为什么要使用闭包(closures)

闭包是一个难学的概念,首先要搞清楚为什么需要闭包?其实闭包的出现往往是函数式编程的语言里,在面向对象的编程语言里是可以不需要闭包的。因为闭包作用如下:1. 避免使用全局变量,实现数据隐藏和保持,也就是面向对象的特性:封装。2. 当成员变量比较少,以及方法只有一个时,比类更简单实现。3. 数据和函数...

2017-09-24 13:28:49 1730 0

原创 在win10里从源码编译nodejs的安装包和学习源码

大家其实都是从网站上下载直接安装文件的,为什么还要从源码安装呢?可能原因就两个,一个想自己优化,添加一个特定的东西;另一个想学习nodejs的实现,知道为什么这样实现的。我这里主要为学习nodejs的实现,所以要到下面的网站下载源码:https://nodejs.org/en/download/源...

2017-09-24 11:16:46 2718 0

原创 python里求解物理学上的双弹簧质能系统

物理的模型如下:在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。由于两物体有重力,那么在平面上形成摩擦力,那么摩擦系数分别为b1和b2。所以可以把微分方程写成这样:这是一个二阶的微分方程,为了使用...

2017-09-23 14:09:50 1786 0

原创 python里预先编译正则表达式提高效率

在re的正则表达式模块里,可以通过模块的方式来访问正则表达式,但是如果重复多次地使用正则表达式,最好是使用compile函数把正则表达式编译成对象RegexObject,这样会大大地提高搜索的效率,因为基于非编译方式访问时,是使用模块里的一小块缓冲来进行的。如下面的例子:import re # ...

2017-09-23 12:26:17 1432 0

原创 python里使用正则表达式搜索单词

在python里有强大的正则表达式模块re,用来它进行模式匹配是非常方便的,比如下面的例子,就是用来从一段文字里查找一个单词,如下:import re pattern = 'this' text = 'http://blog.csdn.net/caimouse is...

2017-09-23 11:59:30 2184 0

原创 python里查看string的常量字符串

在string模块里定义有很多常量的字符串,当你写程序时常常会使用它们,不用自己去重新输入。像下面的例子就是遍历里面的常量字符串打印出来,这里使用inspect模块的功能。import inspect import string def is_str(value): return is...

2017-09-21 17:16:44 934 0

原创 python里修改string.Template的正则表达式

通过下面的例子可以查看到string.Template的正则表达式:import string t = string.Template('$var') print(t.pattern.pattern)结果输出如下:    \$(?:      (?P\$) |   # Esc...

2017-09-21 16:33:40 597 0

原创 python里怎么样求解微分方程?

有很多大学生问我,学习python有什么用呢?我说:你至少可以用来解微分方程,如下面的例子,就是解决微分方程:y"+a*y'+b*y=0 代码如下:#y"+a*y'+b*y=0 from scipy.integrate import odeint from...

2017-09-20 17:43:56 11059 4

原创 python里使用string.Template实现自定义转义字符和正则表达式替换

有时修改默认的转义字符$不合适,可以进行自定义为%,又或者需要对替换占位变量进行正则表达式的模式识别,如下面的代码:import string class MyTemplate(string.Template): delimiter = '%' idpatt...

2017-09-20 17:02:54 1004 0

原创 python里使用string.Template怎么避免抛出异常

当你使用string.Template时,有于某些元素不出现,那么就会抛出异常,但有时你不想抛出异常,怎么办呢?可以像下面使用代码这样,使用safe_substitute函数:import string values = {'var': 'foo'} t...

2017-09-20 10:56:37 598 0

原创 python里使用string.Template替换字符1

在python的字符串格式化里,以前常常使用print() %的格式来进行,但这种格式会让有经验的程序也会出错,比如%(name)s。另外在只作字符串替换的场合时,使用%这种格式化,也比较复杂,那么有没有简单的字符串替换的方法呢?答案是有的,就是使用string.Template。在string....

2017-09-18 18:31:40 927 0

原创 python里使用capwords()函数来把字符里每一个英语单词首字母变大写

如果不使用这个函数,需要把字符串使用split()函数进行分割成列表,最后依次对每个单词的首字母变成大写,再使用join()函数来组合出来。使用这个函数就更简单:import string s = 'The quick brown fox jumped over the lazy do...

2017-09-18 11:29:22 6994 0

原创 python里使用协程获取域名解释

在网络里与服务器通讯时,需要找到服务器的IP地址,但是人们输入的经常是域名地址,它们只是方便人类来记忆,但实际上还是需要IP地址的,这时就需要把域名转换为IP地址,在这个例子里使用协程来获取域名的IP地址,由于获取过程中会阻塞,使用协程就可以解决这个问题。源码如下:import asyncio i...

2017-09-17 15:15:55 476 0

原创 在Windows里生成SSL的证书和使用python进行通讯

Python游戏开发入门http://edu.csdn.net/course/detail/5690你也能动手修改C编译器http://edu.csdn.net/course/detail/5582第一步到下面网站下载:PenSSL下载地址:https://www.openssl.org/sour...

2017-09-17 13:11:58 2053 1

原创 python里使用协程和StreamReader、StreamWriter来创建echo客户端

跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592在这例子里,先导入库asyncio和logging,接着导入系统库sys。然后定义发送的数据MESSAGES,服务器的IP和端口。定义一个协程函数echo_client,在这个函数使用asyncio....

2017-09-17 10:59:08 3076 0

原创 python里使用协程和StreamReader、StreamWriter来创建echo服务端

Python游戏开发入门http://edu.csdn.net/course/detail/5690在这个程序里,与前面使用asyncio.Protocol协议不一样,使用底层的StreamReader、StreamWriter来创建。首先导入asyncio和logging库,接着导入sys库。定...

2017-09-16 10:50:43 1273 0

原创 python里使用协程来创建echo客户端

在这个例子里使用asyncio.Protocol来创建一个echo客户端,先导入库asyncio和logging。接着定义发送的消息MESSAGES。创建连接服务器的地址SERVER_ADDRESS,接着创建EchoClient类,它是继承asyncio.Protocol。在这个类的构造函数里,接...

2017-09-14 18:29:41 718 0

原创 python里使用协程来创建echo服务器

asyncio库的主作用就是用来构造基于I/O方面的程序。在这里通过一个echo服务器来学会怎么使用协程来创建服务器的方式。每次I/O操作完成之后,就会释放控制权,交回到事件循环里。代码如下:import asyncio import logging import sys SERVER_ADDR...

2017-09-12 16:50:03 794 0

原创 机器学习大牛李飞飞的电脑配置

从李飞飞的课程里,可以看到她的电脑配置,可以估计的配置是机器学习的基本配置,我们可以参考一下:CPU: intel core i7-7700k 4.4G内存:4X8G 显示卡: 两个NV GTX 1070硬盘: HDD一个, SSD两个参考的文章:http://cs231n.stanford.ed...

2017-09-12 10:52:12 16500 1

原创 python里使用队列asyncio.Queue进行通讯

asyncio.Queue与其它队列是一样的,都是先进先出,它是为协程定义的,例子如下:import asyncio async def consumer(n, q): print('consumer {}: starting'.format(n)) whi...

2017-09-09 18:34:39 6949 0

原创 python里使用Condition对象来唤醒指定数量的协程

在asyncio库里,定义Condition对象,它的行为与事件Event有点像,区别是事件是通知所有对象,Condition对象可以指定一定数量的协程被通知,它是通过函数notify()来实现的,如果参数里放2,就是通知两个协程,例子如下:import asyncio async def c...

2017-09-09 18:01:01 892 0

原创 python里使用事件对象asyncio.Event来同步协程

事件对象asyncio.Event是基于threading.Event来实现的。事件可以一个信号触发多个协程同步工作,例子如下:import asyncio import functools def set_event(event): print('setting event...

2017-09-09 17:37:18 1492 0

原创 python里协程使用同步锁Lock

尽管asyncio库是使用单线程来实现协程的,但是它还是并发的,乱序执行的。可以说是单线程的调度系统,并且由于执行时有延时或者I/O中断等因素,每个协程如果同步时,还是得使用一些同步对象来实现。比如asyncio就定义了一个锁对象Lock,它一次只允许一个协程来访问共享的资源,如果多协程想访问就会...

2017-09-09 11:04:43 4181 0

原创 python里怎么实现多个协程一起执行,只要完成一个就返回一个协程

需要使用新的函数as_completed()来实现,可以把多个并发的协程一起给它,但它把返回的结果变成一个生成器,每次返回一个协程的结果,与函数wait()一样,执行协程是乱序的,不会等所有协程执行完成才返回。例子:import asyncio async def phase(i): ...

2017-09-09 10:10:50 2353 0

原创 python里函数定义的理解

在python里函数定义,与C语言或Java语言的函数定义是不一样的,C语言是定义了一个入口地址,但python语言是定义了一个对象,是一个函数对象。因为函数定义语句是一个执行语句,当python解释器遇到def开头时,就会解析执行def定义的这一行命令,而不是等到调用时才执行,更不像C语言里当调...

2017-09-09 09:43:51 1518 0

原创 python里仅收集所有协程执行结果

跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592Python游戏开发入门http://edu.csdn.net/course/detail/5690有这么样的一种需求,比如使用多协程来计算加密结果,像这样没有取消任务的需求,也不会出现异常的,可以使...

2017-09-08 18:36:02 731 0

原创 python里并发执行协程时部分阻塞超时怎么办

Python游戏开发入门http://edu.csdn.net/course/detail/5690跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592在前面的例子里学习了并发地执行多个协程来下载图片,也许其中一个协程永远下载不了,一直阻塞,这时怎么办...

2017-09-08 17:39:17 3674 0

原创 python里创建多个协程并发执行

像前面线性地执行的协程,理解起来非常容易,并且使用关键字await就可以解决了,但是很多情况之下是并发地执行多个协程的,因为常常把任务分解成多个协程运行,比如要从一个网站上下载网页,这时需要下载HTML内容,同时也要下载网页里很多图片的资源,在这种情况之下,就可以把多个图片下载进行并发执行,并且没...

2017-09-08 17:13:47 3834 0

原创 python里把协程变成任务

在这里使用 ensure_future()函数可以把一个协程封装成一个任务,然后这个任务就可以传送给别的代码,不过要注意的是这个函数不会开始执行协程,需要使用关键await才会开始执行:import asyncio async def wrapped(): print('wr...

2017-09-08 16:40:58 686 0

原创 python里创建任务执行一半时取消任务执行

下例子来演示创建任务执行一半时取消任务执行,这时会抛出异常CancelledError,同时也提供了一个机会来删除占用资源等等:import asyncio async def task_func(): print('in task_func, sleeping')...

2017-09-08 16:12:50 1672 0

原创 python里取消一个未曾执行的任务

python里取消一个未曾执行的任务下面的例子使用create_task()函数来创建一个任务,在未执行任务之前就进行取消:import asyncio async def task_func(): print('in task_func') return ...

2017-09-08 16:01:23 763 0

原创 python里创建一个任务(Task)

与事件循环进行交互,最基本的方式就是任务,任务封装了协程和自动跟踪它的状态。任务是Future类的子类,所以其它协程可以等待任务完成,或当这些任务完成获取返回结果。在这里通过create_task()函数来创建一个任务实例,然后事件循环就运行这个任务,直到这个任务返回为止:import async...

2017-09-08 15:52:52 4606 0

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