实现一个支持动态扩容的数组并完成其增删改查#通过python实现动态数组"""数组特点:占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1)添加元素时间复杂度:O(n)删除元素时间复杂度:O(n)"""classArr:def__init__(self,capacity=10):"""构造函数:paramcapacity:数组最大容量,不指定的话默认为10"""self._capacity=capacityself._size=0#数组有效
系统 2019-09-27 17:52:16 1838
原型模式,也是用于创建对象时的一种设计方法。主要应用场景是:每次初始化某个对象时,需要传递大量的参数,很不方便,此时,可以使用原型模式,在已经创建并初始化的对象基础上,可以快速而又方便创建新的不同对象。主要原理:使用深拷贝,复制一个已创建的对象,然后使用__dict__.update()方法更新已创建对象中的参数值方式创建新对象。背景知识:在python中的类中,__dict__是一个字典,保存了所有该类中的变量,函数等参数。#coding=utf-8im
系统 2019-09-27 17:52:15 1838
看python社区大妈组织的内容里边有一篇讲python内存优化的,用到了__slots__。然后查了一下,总结一下。感觉非常有用python类在进行实例化的时候,会有一个__dict__属性,里边有可用的实例属性名和值。声明__slots__后,实例就只会含有__slots__里有的属性名。#coding:utf-8classA(object):x=1def__init__(self):self.y=2a=A()printa.__dict__print(
系统 2019-09-27 17:52:11 1838
经典的汉诺塔问题:这里我们可以利用递归的思想去做,递归中重要的三步,我们逐条来实现:1、函数+分支结构2、递归链条3、递归基例函数+分支结构:defhanoi(n,start,end,mid):globalcountif:else:这里我们可以定义一个函数,里面的参数有:一共有n个圆盘,从start柱子移到end柱子,中间柱子为mid。这里定义一个全局变量来计算移动的步骤数,若为局部变量,会在函数内部不断初始化,所以需要定义全局变量。递归基例:ifn==1
系统 2019-09-27 17:52:07 1838
Sklearn简介Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(DimensionalityReduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:简单高效的数据挖掘和数据分析工具让每个人能够在复杂环境中重复使用建立NumPy、Scipy、
系统 2019-09-27 17:51:55 1838
Python是一门非常酷的语言,因为很少的Python代码可以在短时间内做很多事情,并且,Python很容易就能支持多任务和多重处理。py1、关键代码可以依赖于扩展包Python使许多编程任务变得简单,但是对于很关键的任务并不总是提供最好的性能。使用C、C++或者机器语言扩展包来执行关键任务能极大改善性能。这些包是依赖于平台的,也就是说,你必须使用特定的、与你使用的平台相关的包。简而言之,该解决方案提供了一些应用程序的可移植性,以换取性能,您可以获得只有通
系统 2019-09-27 17:51:50 1838
2016年1月,机缘巧合下我出版了《Selenium2自动化测试实战--基于python语言》这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用SeleniumIDE去录制/回放脚本么?没想到受到许多测试人员的欢迎,我会时常去看网上的书评。大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议。在此,表示感谢。随着,我对Selenium自
系统 2019-09-27 17:51:40 1838
阅读更多网上流传以下几种安装1)要安装或升级pip,需要下载get-pip.py.地址:https://bootstrap.pypa.io/get-pip.py然后运行以下命令(需要管理员权限):pythonget-pip.py试了试:不行2)去官网下载①https://pypi.python.org/pypi/pip②下载之后的包上传到服务器上③然后解压tar-zxvf***④解压之后会有个文件夹⑤进入到文件夹,执行命令pythonsetup.pyins
系统 2019-09-27 17:51:30 1838
Python中定义函数有两种方法,一种是用常规方式def定义,函数要指定名字,第二种是用lambda定义,不需要指定名字,称为Lambda函数。Lambda函数又称匿名函数,匿名函数就是没有名字的函数,函数没有名字也行?当然可以啦。有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要非给它取个名字不可。好比电影里面的群众演员,往往他们的戏份很少,最多是衬托主演,跑跑龙套,他们需要名字吗?不需要,因为他们仅仅只是临时出镜,下次可能就用不着了,所以犯
系统 2019-09-27 17:50:41 1838
python多线程#创建线程threading_list=[]t1=threading.Thread(target=music,args=(u'爱情买卖',))threading_list.append(t1)t2=threading.Thread(target=move,args=(u'阿凡达',))threading_list.append(t2)fortinthreading_list:#启动线程t.setDaemon(True)#将线程声明为守护线
系统 2019-09-27 17:50:32 1838