- 博客(65)
- 资源 (33)
- 论坛 (34)
- 收藏
- 关注
原创 什么是软件开发?
有一个销售的同事在会议上说,你们软件开发人员真好,坐在电脑前打打代码就可以完成工作了。还有一些对软件开发不懂的老板说,你们软件开发不就是写几行代码就可以了吗。可见,没有深入软件开发的了解,永远都是这么肤浅的认识。其实软件开发总共有11个过程:定义问题需求分析规划构造软件架构详细设计编码与调试单元测试集成测试集成系统测试保障维护也许有时候解决的功能比较少,一上来就编码,发布软件就解决了,就认为软件开
2017-09-30 16:38:30
4329
原创 python里使用reduce()函数
reduce()函数在库functools里,如果要使用它,要从这个库里导入。reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简化的结果,在计算机的算法里,大多数情况下,就是为了简单化。比如识别图像是否是一只猫,那么就是从众多的像素里提炼出来一个判断:是或否。可能是几百万个像素,就只出来一个结果。在GOOGLE大规模集群里,就
2017-09-29 08:31:09
9458
原创 python里使用map()函数
在python里有一个函数map(),它有点高大上的感觉。或许你已经看过GOOGLE最挣钱的论文:“MapReduce: Simplified Data Processing on Large Clusters”Google的那篇MapReduce论文里说:Our abstraction is inspired by the map and reduce primitives present in
2017-09-27 17:55:11
3252
原创 深入浅出Numpy-蔡军生-专题视频课程
随着人工智能的复兴,越来越多AI的架构采用Python语言来开发,因此学会Numpy处理数据,就成为当下急需的技能。人工智能其实就是数据处理方式,因此需要学习怎么样表示数据、以及数据处理方式,Numpy库就是人工智能里的基础,比如在TensorFlow应用非常广泛。...
2017-09-27 08:47:04
204
原创 python里除了继承修改类之外还有装饰器也能
python是面向对象的语言,它有类的继承,因此它是可以修改基类函数的功能。但是除了继承之外,类函数的功能也可以使用装饰器来修改,这种功能叫做装饰类。为了学习装饰类,需要好好地查看下面的代码:#python 3.6#定义装饰器函数def decorator(aClass): class newClass: def __init__(self, age):
2017-09-26 17:28:48
1224
原创 python里装饰器级连的使用
从前面的文章来看,学会了为什么要使用装饰器,也明白了装饰器是什么了,但是你也许会问,是否可以在装饰器前面再添加一层装饰器,会怎么样呢?就像大楼一样,一层一层地叠在一起。其实是可以的。现在我们就来学习这种堆叠技术,与类的继承是有相似之处,可以不断地继承下去。代码如下:#python 3.6def star(func): def inner(*args, **kwargs):
2017-09-26 16:40:50
680
原创 python里使用带参数的装饰器
在前面一文《python里为什么需要使用装饰器(decorator)》里,我们学习了为什么需要装饰器,知道装饰器就是为了不修改原来函数的代码,又达到增加功能的作用。其实为了装饰器更通用化,那么装饰器是否也可以带参数呢?其实是可以的,这样更加通用化了,达到共享极点。在前面也学习《为什么要使用闭包(closures)》一文,知道参数可以嵌套函数里实现隐藏,并且实现全局参数的功能,与函数一起绑定。因此只
2017-09-24 18:22:01
5109
原创 python里为什么需要使用装饰器(decorator)
为什么需要使用装饰器呢?其实很多人学习python之后都会问这个问题。这一次,我来深入地学习一下什么是装饰器,以及为什么需要它。其实这个装饰器就是我们这样的程序员太“懒”了,基本上什么事情都想少做,追求是DRY,那么什么是DRY,如下:DRY(Don't repeat yourself ),字面意思来看:"不要重复自己"。强调的意思就是在进行编程时相同的代码不要重复写,最好只写一次,然后可以在其他
2017-09-24 17:39:31
6906
1
原创 为什么要使用闭包(closures)
闭包是一个难学的概念,首先要搞清楚为什么需要闭包?其实闭包的出现往往是函数式编程的语言里,在面向对象的编程语言里是可以不需要闭包的。因为闭包作用如下:1. 避免使用全局变量,实现数据隐藏和保持,也就是面向对象的特性:封装。2. 当成员变量比较少,以及方法只有一个时,比类更简单实现。3. 数据和函数一起封装,适应异步或并发运行。什么时候定义了一个闭包当在一个函数里嵌套定义一个函数时,就会产生一个闭包
2017-09-24 13:28:49
1945
原创 在win10里从源码编译nodejs的安装包和学习源码
大家其实都是从网站上下载直接安装文件的,为什么还要从源码安装呢?可能原因就两个,一个想自己优化,添加一个特定的东西;另一个想学习nodejs的实现,知道为什么这样实现的。我这里主要为学习nodejs的实现,所以要到下面的网站下载源码:https://nodejs.org/en/download/源码在这个连接里:https://nodejs.org/dist/v6.11.3/node-v6.11.
2017-09-24 11:16:46
3086
原创 python里求解物理学上的双弹簧质能系统
物理的模型如下:在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。由于两物体有重力,那么在平面上形成摩擦力,那么摩擦系数分别为b1和b2。所以可以把微分方程写成这样:这是一个二阶的微分方程,为了使用python来求解,需要把它转换为一阶微分方程。所以引入下面两个变量:这两个相当于运动的速度。通过运算
2017-09-23 14:09:50
2202
原创 python里预先编译正则表达式提高效率
在re的正则表达式模块里,可以通过模块的方式来访问正则表达式,但是如果重复多次地使用正则表达式,最好是使用compile函数把正则表达式编译成对象RegexObject,这样会大大地提高搜索的效率,因为基于非编译方式访问时,是使用模块里的一小块缓冲来进行的。如下面的例子:import re# Precompile the patternsregexes = [ re.compile(
2017-09-23 12:26:17
1658
原创 python里使用正则表达式搜索单词
在python里有强大的正则表达式模块re,用来它进行模式匹配是非常方便的,比如下面的例子,就是用来从一段文字里查找一个单词,如下:import repattern = 'this'text = 'http://blog.csdn.net/caimouse is great, this is great way!'match = re.search(pattern, text)s =
2017-09-23 11:59:30
2578
原创 python里查看string的常量字符串
在string模块里定义有很多常量的字符串,当你写程序时常常会使用它们,不用自己去重新输入。像下面的例子就是遍历里面的常量字符串打印出来,这里使用inspect模块的功能。import inspectimport stringdef is_str(value): return isinstance(value, str)for name, value in inspect.g
2017-09-21 17:16:44
991
原创 python里修改string.Template的正则表达式
通过下面的例子可以查看到string.Template的正则表达式:import stringt = string.Template('$var')print(t.pattern.pattern)结果输出如下: \$(?: (?P\$) | # Escape sequence of two delimiters (?P[_a-z][_a-z0-9]*)
2017-09-21 16:33:40
655
原创 python里怎么样求解微分方程?
有很多大学生问我,学习python有什么用呢?我说:你至少可以用来解微分方程,如下面的例子,就是解决微分方程:y"+a*y'+b*y=0 代码如下:#y"+a*y'+b*y=0 from scipy.integrate import odeintfrom pylab import *def deriv(y,t): # 返回值是y和y的导数组成的数组 a = -2.0
2017-09-20 17:43:56
12490
4
原创 python里使用string.Template实现自定义转义字符和正则表达式替换
有时修改默认的转义字符$不合适,可以进行自定义为%,又或者需要对替换占位变量进行正则表达式的模式识别,如下面的代码:import stringclass MyTemplate(string.Template): delimiter = '%' idpattern = '[a-z]+_[a-z]+'template_text = ''' Delimiter : %%
2017-09-20 17:02:54
1170
原创 python里使用string.Template怎么避免抛出异常
当你使用string.Template时,有于某些元素不出现,那么就会抛出异常,但有时你不想抛出异常,怎么办呢?可以像下面使用代码这样,使用safe_substitute函数:import stringvalues = {'var': 'foo'}t = string.Template("$var is here but $missing is not provided")try:
2017-09-20 10:56:37
647
原创 python里使用string.Template替换字符1
在python的字符串格式化里,以前常常使用print() %的格式来进行,但这种格式会让有经验的程序也会出错,比如%(name)s。另外在只作字符串替换的场合时,使用%这种格式化,也比较复杂,那么有没有简单的字符串替换的方法呢?答案是有的,就是使用string.Template。在string.Template里,它使用$为替换名称的开始,比如$var这样写。当然也可以使用${var}这种方式,
2017-09-18 18:31:40
1011
原创 python里使用capwords()函数来把字符里每一个英语单词首字母变大写
如果不使用这个函数,需要把字符串使用split()函数进行分割成列表,最后依次对每个单词的首字母变成大写,再使用join()函数来组合出来。使用这个函数就更简单:import strings = 'The quick brown fox jumped over the lazy dog.'print(s)print(string.capwords(s))输出如下:The quick b
2017-09-18 11:29:22
8441
原创 python里使用协程获取域名解释
在网络里与服务器通讯时,需要找到服务器的IP地址,但是人们输入的经常是域名地址,它们只是方便人类来记忆,但实际上还是需要IP地址的,这时就需要把域名转换为IP地址,在这个例子里使用协程来获取域名的IP地址,由于获取过程中会阻塞,使用协程就可以解决这个问题。源码如下:import asyncioimport loggingimport socketimport sysTARGETS =
2017-09-17 15:15:55
559
原创 在Windows里生成SSL的证书和使用python进行通讯
Python游戏开发入门http://edu.csdn.net/course/detail/5690你也能动手修改C编译器http://edu.csdn.net/course/detail/5582第一步到下面网站下载:PenSSL下载地址:https://www.openssl.org/source/编译好的OpenSSL下载地址: http://slproweb.com/products/Wi
2017-09-17 13:11:58
2446
1
原创 python里使用协程和StreamReader、StreamWriter来创建echo客户端
跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592在这例子里,先导入库asyncio和logging,接着导入系统库sys。然后定义发送的数据MESSAGES,服务器的IP和端口。定义一个协程函数echo_client,在这个函数使用asyncio.open_connection来连接服务器,创建一个socket,返回两个对应的流控制对象Stream
2017-09-17 10:59:08
3448
原创 python里使用协程和StreamReader、StreamWriter来创建echo服务端
Python游戏开发入门http://edu.csdn.net/course/detail/5690在这个程序里,与前面使用asyncio.Protocol协议不一样,使用底层的StreamReader、StreamWriter来创建。首先导入asyncio和logging库,接着导入sys库。定义服务器的IP地址和端口,以便服务器创建监听的端口。开始定义echo(reader, writer)协
2017-09-16 10:50:43
1537
原创 python里使用协程来创建echo客户端
在这个例子里使用asyncio.Protocol来创建一个echo客户端,先导入库asyncio和logging。接着定义发送的消息MESSAGES。创建连接服务器的地址SERVER_ADDRESS,接着创建EchoClient类,它是继承asyncio.Protocol。在这个类的构造函数里,接收两个参数messages和future,messages是指定要发送的消息数据,future是用来通
2017-09-14 18:29:41
777
原创 python里使用协程来创建echo服务器
asyncio库的主作用就是用来构造基于I/O方面的程序。在这里通过一个echo服务器来学会怎么使用协程来创建服务器的方式。每次I/O操作完成之后,就会释放控制权,交回到事件循环里。代码如下:import asyncioimport loggingimport sysSERVER_ADDRESS = ('localhost', 10000)class EchoServer(async
2017-09-12 16:50:03
938
原创 机器学习大牛李飞飞的电脑配置
从李飞飞的课程里,可以看到她的电脑配置,可以估计的配置是机器学习的基本配置,我们可以参考一下:CPU: intel core i7-7700k 4.4G内存:4X8G 显示卡: 两个NV GTX 1070硬盘: HDD一个, SSD两个参考的文章:http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture8.pdfPython游戏开发入门h
2017-09-12 10:52:12
18297
2
原创 python里使用队列asyncio.Queue进行通讯
asyncio.Queue与其它队列是一样的,都是先进先出,它是为协程定义的,例子如下:import asyncioasync def consumer(n, q): print('consumer {}: starting'.format(n)) while True: print('consumer {}: waiting for item'.format
2017-09-09 18:34:39
7923
原创 python里使用Condition对象来唤醒指定数量的协程
在asyncio库里,定义Condition对象,它的行为与事件Event有点像,区别是事件是通知所有对象,Condition对象可以指定一定数量的协程被通知,它是通过函数notify()来实现的,如果参数里放2,就是通知两个协程,例子如下:import asyncioasync def consumer(condition, n): with await condition:
2017-09-09 18:01:01
1073
原创 python里使用事件对象asyncio.Event来同步协程
事件对象asyncio.Event是基于threading.Event来实现的。事件可以一个信号触发多个协程同步工作,例子如下:import asyncioimport functoolsdef set_event(event): print('setting event in callback') event.set()async def coro1(event):
2017-09-09 17:37:18
1849
原创 python里协程使用同步锁Lock
尽管asyncio库是使用单线程来实现协程的,但是它还是并发的,乱序执行的。可以说是单线程的调度系统,并且由于执行时有延时或者I/O中断等因素,每个协程如果同步时,还是得使用一些同步对象来实现。比如asyncio就定义了一个锁对象Lock,它一次只允许一个协程来访问共享的资源,如果多协程想访问就会阻塞起来,也就是说如果一个协程没有释放这个锁,别的协程是没有办法访问共享的资源。例子:import a
2017-09-09 11:04:43
4781
原创 python里怎么实现多个协程一起执行,只要完成一个就返回一个协程
需要使用新的函数as_completed()来实现,可以把多个并发的协程一起给它,但它把返回的结果变成一个生成器,每次返回一个协程的结果,与函数wait()一样,执行协程是乱序的,不会等所有协程执行完成才返回。例子:import asyncioasync def phase(i): print('in phase {}'.format(i)) await asyncio.sl
2017-09-09 10:10:50
2715
原创 python里函数定义的理解
在python里函数定义,与C语言或Java语言的函数定义是不一样的,C语言是定义了一个入口地址,但python语言是定义了一个对象,是一个函数对象。因为函数定义语句是一个执行语句,当python解释器遇到def开头时,就会解析执行def定义的这一行命令,而不是等到调用时才执行,更不像C语言里当调用时才会执行函数定义。python它会在函数定义时就开始把函数名称、局部命名空间,局部命名空间就包含了
2017-09-09 09:43:51
1786
原创 python里仅收集所有协程执行结果
跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592Python游戏开发入门http://edu.csdn.net/course/detail/5690有这么样的一种需求,比如使用多协程来计算加密结果,像这样没有取消任务的需求,也不会出现异常的,可以使用gather()函数来并发运行协程更方便:import asyncioasync def ph
2017-09-08 18:36:02
853
原创 python里并发执行协程时部分阻塞超时怎么办
Python游戏开发入门http://edu.csdn.net/course/detail/5690跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592在前面的例子里学习了并发地执行多个协程来下载图片,也许其中一个协程永远下载不了,一直阻塞,这时怎么办呢?碰到这种需求时不要惊慌,可以使用wait()里的timeout参数来设置等待时间,也就是从这个函数
2017-09-08 17:39:17
4453
原创 python里创建多个协程并发执行
像前面线性地执行的协程,理解起来非常容易,并且使用关键字await就可以解决了,但是很多情况之下是并发地执行多个协程的,因为常常把任务分解成多个协程运行,比如要从一个网站上下载网页,这时需要下载HTML内容,同时也要下载网页里很多图片的资源,在这种情况之下,就可以把多个图片下载进行并发执行,并且没有顺序运行的关系。在这个例子里使用wait()函数来实现多个协程并发执行,并等待所有协程完成:impo
2017-09-08 17:13:47
4652
原创 python里把协程变成任务
在这里使用 ensure_future()函数可以把一个协程封装成一个任务,然后这个任务就可以传送给别的代码,不过要注意的是这个函数不会开始执行协程,需要使用关键await才会开始执行:import asyncioasync def wrapped(): print('wrapped') return 'result'async def inner(task):
2017-09-08 16:40:58
742
原创 python里创建任务执行一半时取消任务执行
下例子来演示创建任务执行一半时取消任务执行,这时会抛出异常CancelledError,同时也提供了一个机会来删除占用资源等等:import asyncioasync def task_func(): print('in task_func, sleeping') try: await asyncio.sleep(1) except asyncio.C
2017-09-08 16:12:50
2046
原创 python里取消一个未曾执行的任务
python里取消一个未曾执行的任务下面的例子使用create_task()函数来创建一个任务,在未执行任务之前就进行取消:import asyncioasync def task_func(): print('in task_func') return 'the result'async def main(loop): print('创建任务') ta
2017-09-08 16:01:23
808
原创 python里创建一个任务(Task)
与事件循环进行交互,最基本的方式就是任务,任务封装了协程和自动跟踪它的状态。任务是Future类的子类,所以其它协程可以等待任务完成,或当这些任务完成获取返回结果。在这里通过create_task()函数来创建一个任务实例,然后事件循环就运行这个任务,直到这个任务返回为止:import asyncioasync def task_func(): print('in task_func
2017-09-08 15:52:52
5414
python抓取天气并分析 实例源码
2017-08-28
国产8051模拟器
2016-09-10
python web py入门配套源代码
2018-02-23
milang 1.0.5
2014-08-03
milang 1.0.4
2014-07-13
milang 1.0.3
2014-06-07
Milang 1.0.2
2014-06-02
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
书《深度学习》
2017-03-13
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
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的粉丝