搜索到与相关的文章
Python

Python 硬币兑换问题

硬币兑换问题:给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少。#动态规划思想dp方程式如下#dp[0]=0#dp[i]=min{dp[i-coins[j]]+1},且其中i>=coins[j],0<=j

系统 2019-09-27 17:54:53 2044

Python

实例详解Python装饰器与闭包

闭包是Python装饰器的基础。要理解闭包,先要了解Python中的变量作用域规则。变量作用域规则首先,在函数中是能访问全局变量的:>>>a='globalvar'>>>deffoo():print(a)>>>foo()globalvar然后,在一个嵌套函数中,内层函数能够访问在外层函数中定义的局部变量:>>>deffoo():a='freevar'defbar():print(a)returnbar>>>foo()()freevar闭包上面的嵌套函数就是

系统 2019-09-27 17:54:39 2044

Python

聊聊 Python 的单元测试框架(二):nose 和它的继任者 nose2

作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article一、nosenose是一个第三方单元测试框架,它完全兼容unittest,并且号称是一个更好用的测试框架。那么nose除了具备unittest的所有功能外,还具有哪些优势呢?1.1用例编写用例的编写方式除了编写继承于unittest.TestCase的测试类外,还可以编

系统 2019-09-27 17:54:38 2044

Python

浅谈Python中的可变对象和不可变对象

什么是可变/不可变对象不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变。Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。

系统 2019-09-27 17:54:37 2044

Python

python_魔术方法

魔术方法(魔法函数):一种特殊的方法。特点:不需要人工调用,在特定的时刻自动执行。1._init_初始化魔术方法*****1.触发时机:实例化对象之后触发2.作用:为实例化的对象添加对象的所属成员。3.参数:一个self接受当前对象其他的参数根据实例化的传参决定4.返回值:无5.注意事项:无例:className():age=18def__init__(self,head):self.sex="男"self.color="black"self.runs=s

系统 2019-09-27 17:54:26 2044

Python

Python使用py2exe打包程序介绍

一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32comclient和server,和其它的独立程序。py2exe是发布在开源许可证下的。二、安装py2exe从http://prdownloads.sourceforg

系统 2019-09-27 17:54:15 2044

Python

python基础 filter ,列表,字典,集合 中根据 条件 筛选 数据

fromrandomimportrandintdata=[randint(-10,10)for_inxrange(10)]printdatae=filter(lambdax:x>=0,data)printe或者使用列表解析速度快[xforxindataifx>=0]对字典的筛选d={x:randint(60,100)forxinxrange(1,21)}printdprint{k:vfork,vind.iteritems()ifv>90}对集合的筛选找出被

系统 2019-09-27 17:54:14 2044

Python

Python中的 is 和 == 以及字符串驻留机制详解

is和==先了解下官方文档中关于is和==的概念。is表示的是对象标示符(objectidentity),而==表示的是相等(equality);is的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样(相当于检查id(a)==id(b)),而==是用来检查两个对象引用的值是否相等(相当于检查a.eq(b));这点和Java有点类似,只不过Java中是用==来比较两个对象在内存中的地址,用equals()来检查两者之间的值是否相等

系统 2019-09-27 17:53:56 2044

Python

python多进程读取mysql表

表数据超过百万级别时使用pandas读取数据速度过慢,如果仍然想用pandas读取,可以通过多进程提高效率。同时可以将常用数据保存为pkl文件,以便后续使用。@主要代码实现#按照表中的某字段将表划分为比较均匀的多个子集#本例中需要读取的表中包含了城市字段,#且涉及的城市包含了全国大部分城市,数据分布较为均匀,因此制作了一张省份城市配置表,将数据划分#读取省份-城市配置表,获取城市列表defget_division_list(db_connect,divis

系统 2019-09-27 17:53:46 2044

Python

24式加速你的Python

这是小编推荐的第25篇好文来源:Python与算法之美作者:梁云1991一,分析代码运行时间第1式,测算代码运行时间平凡方法快捷方法(jupyter环境)第2式,测算代码多次运行平均时间平凡方法快捷方法(jupyter环境)第3式,按调用函数分析代码运行时间平凡方法快捷方法(jupyter环境)第4式,按行分析代码运行时间平凡方法快捷方法(jupyter环境)二,加速你的查找第5式,用set而非list进行查找低速方法高速方法第6式,用dict而非两个li

系统 2019-09-27 17:53:41 2044