一、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分取出并封装起来,二、针对接口编程,而不是针对实现编程。三多有组合,少用继承。策略模式:定义了算法簇,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。设计原则(一策略模式)
系统 2019-08-12 01:33:11 2445
OpenStack安装--环境准备首先,这里我们不再介绍OpenStack是什么,以及它的架构是什么样子的,因为网上已经有很多这方面的资料了。这里我们就只讨论安装OpenStack所必需的环境基础。众所周知,OpenStack是基于Python语言编写的,同时使用了很多Plugin,同时OpenStack各个组件之间的通信(或者说数据交换)都是基于数据库(Mysql)和消息中间件(RabbitMQ)进行的,因此今天我们就从这几个方面具体说起:一、Pytho
系统 2019-08-12 01:32:45 2445
爬虫的概念:爬虫就是获取网页并提取和保存信息的自动化程序爬虫的分类:主要有四类:通用网络爬虫,聚焦网络爬虫,增量式网络爬虫,深层网络爬虫爬虫的流程:常见的几种爬虫问题:主要有五类:静态网页的爬取,Ajax数据的爬取,动态渲染页面爬取,验证码的识别,代理的使用常见的爬虫框架:pyspider框架,Scrapy框架分布式爬虫:在多台机器上运行爬虫程序爬虫的一些常用"库":解析库:lxml;BeautifulSoup;pyquery;tesserocr请求库:r
系统 2019-09-27 17:56:06 2444
python买卖股票的最佳时机LeetCodeNo.122解法:一、暴力解法二、贪心算法:由于不限制买卖次数,也没有交易费用,就可以是用贪心算法。思路:只要第二天比前一天高,我们就买进,第二天卖掉,就可以赚钱。三、动态规划:根据算法导论这本最权威的书(最难读的一本书)中提到动态规划的四个步骤,第一刻画一个最优解的结构特征,第二递归地定义最优解的值,第三计算最优解的值,通常采用自低向上的方法,第四计算出的信息构造一个最优解(如最长公共子序列中,求出最长的子序
系统 2019-09-27 17:55:40 2444
需求:拷大量数据,发现有2000G,靠系统的复制功能怕是得好几个小时,于是回来学一手操作,话不多说上代码:说明:CopyFiles1是可以将sourceDir连子目录一起原样复制到targetDir,而CopyFiles2是在sourceDir中筛选特定格式文件,然后将其直接放在targetDir中,会很乱。但是很快importosimporttimeimportshutilsourceDir=r"D:\copytest\datatest"targetDi
系统 2019-09-27 17:55:34 2444
在android上,我们可以使用QPython来编写、执行Python脚本。它对很多android系统函数进行了方便的封装,使用QPython编写功能简单的小程序异常方便。这个示例是我之前用来读取手机位置信息并作为进一步处理数据的基础脚本。复制代码代码如下:#-*-coding:utf-8-*-importandroidhelperimporttimefrommathimportradiansdroid=androidhelper.Android()dro
系统 2019-09-27 17:51:52 2444
实现思路:1,将传进来的图片矩阵用算子进行卷积求和(卷积和取绝对值)2,用新的矩阵(与原图一样大小)去接收每次的卷积和的值3,卷积图片所有的像素点后,把新的矩阵数据类型转化为uint8注意:必须对求得的卷积和的值求绝对值;矩阵数据类型进行转化。完整代码:importcv2importnumpyasnp#robert算子[[-1,-1],[1,1]]defrobert_suanzi(img):r,c=img.shaper_sunnzi=[[-1,-1],[1
系统 2019-09-27 17:51:03 2444
在python项目中,我们经常会用到lambda,那么lambda是什么呢,有什么作用,下面我们开始介绍1、可以使用lambda关键字创建匿名函数。Lambda函数可以在需要函数对象的任何地方使用。它们在语法上限于单个表达式。所谓匿名就是无名。例如定义两个书加法:myplus=lambdaa,b:a+bprintmyplus(4,2)输出:62、再比如我们求两个数的乘积mysubs=lambdaa,b:a*bprint(mysubs(9,9))输入两个数,
系统 2019-09-27 17:49:45 2444
这里介绍一个nii文件保存为png格式的方法。这篇文章是介绍多个nii文件保存为png格式的方法:https://www.jb51.net/article/165692.htm系统:Ubuntu16.04软件:python3.5先用pip安装nibabel、numpy、imageio、os。importnibabelasnibimportnumpyasnpimportimageioimportosdefread_niifile(niifile):#读取ni
系统 2019-09-27 17:49:23 2444
声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布,建立音频内容和文本的对应关系,以此作为模型训练的基础。案例:画出语音信号的波形和频率分布,(freq.wav数据地址)#-*-encoding:utf-8-*-importnumpyasnpimportnumpy.fftasnfimportscipy.io.wa
系统 2019-09-27 17:49:15 2444