第十二~十三天:python进阶深入1.生成器:创建生成器最简单的方法就是用圆括号()代替方括号[]把列表生成式的[]变成()生成器只能调用一次,不占用资源。用完就释放出来。foriing:print(i)也可以调用Next函数直到计算出最后一个元素位置,但是这种方法很明显不适用,并且最后会抛出StopIteration的错误。斐波那契数列:除第一个和第二个数外,任意一个数都可由前两个数相加得到:1,1,2,3,5,8,13,21,34,…return返回
系统 2019-09-27 17:51:38 2229
字典的宣告變數名{鍵:值}variable_name{key:value}1.字典的宣告>>>X=dict()>>>id(X)37383264>>>X={'One':1,'Two':2,'Three':3}>>>X{'One':1,'Two':2,'Three':3}>>>id(X)34178464>>>X.values()dict_values([1,2,3])>>>X.keys()dict_keys(['One','Two','Three'])2.字典
系统 2019-09-27 17:51:27 2229
一个用python实现的统计代码行数的小工具,供大家参考,具体内容如下实现功能计算出某一目录以及子目录下代码文件的行数在计算代码的过程中,只对标准命名的文件进行统计,如[文件名.文件类型]排除了以“#”开头的包含文件,宏定义等,如#include,#define,#pragma等排除了c,cpp文件中的“//”,“/…/”等的注释排除了python文件中import,from等开头的导入使用方法新建countLines.py文件,复制代码到文件中,将其放在
系统 2019-09-27 17:50:59 2229
Python打包分发工具setuptools:曾经Python的分发工具是distutils,但它无法定义包之间的依赖关系。setuptools则是它的增强版,能帮助我们更好的创建和分发Python包,尤其是具有复杂依赖关系的包。其通过添加一个基本的依赖系统以及许多相关功能,弥补了该缺陷。他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加方便,将程序打包以后可以可以安装到自己的虚拟环境中,也可以
系统 2019-09-27 17:50:39 2229
Python作为一门面对对象的语言,那么肯定也是有多态这个属性的,这里主要跟C++的多态做一下类比先看下面的代码这里可以看到,Child,Child2都是Parent的子类,他们分别重写了父类的print_func函数,因此可以看到下面的结果这是单独打印每个对象来得到的结果,下面开始看Python的多态这里可以看到,print_who这个函数只是将obj对象的print_func函数调用打印了一下。这里和C++的多态都是区别不大的。但是Python的多态比
系统 2019-09-27 17:49:56 2229
#coding=utf-8#!/usr/bin/envpython"""convertimagetopdffile"""#Author:mrbeannimportosimportsysimportglobimportplatformfromreportlab.lib.pagesizesimportletter,A4,landscapefromreportlab.platypusimportSimpleDocTemplate,Imagefromreportl
系统 2019-09-27 17:47:09 2229
S=Sum(Ai*Wi),i=0,.......16(现在的身份证号码都是18位长,其中最后一位是校验位,15位的身份证号码好像不用了)Ai对应身份证号码,Wi则为用于加权计算的值,它一串固定的数值,应该是根据某种规则得出的吧,用于取得最好的随机性,Wi的取之如下:7910584216379105842经过加权计算之后,得到一个S,用这个S去模11,取余值,然后查表得到校验位,这个索引表如下:0-----11-----02-----x3-----94---
系统 2019-09-27 17:46:48 2229
altzone()方法是time模块的属性。当地的DST时区的这返回的偏移量,在UTC西部秒钟,如果一个定义。这是负值,如果当地的DST时区为UTC东边(如西欧,包括英国)。只有用这个,如果白天不为零。语法以下是altzone()方法的语法:time.altzone参数NA返回值当地的DST时区的这个方法返回的偏移量,在UTC西部秒钟,如果一个定义。例子下面的例子显示了altzone()方法的使用。#!/usr/bin/pythonimporttimepr
系统 2019-09-27 17:46:44 2229
不管顺序的去重转为set即可1.将序列中重复元素去除,并保持顺序#如果序列items中的值是可哈希的defdedupe(items):seen=set()foriteminitems:ifitemnotinseen:yielditemseen.add(item)>>>a=[1,5,2,1,9,1,5,10]>>>list(dedupe(a))[1,5,2,9,10]写成函数形式是使程序更通用,如读文件去除重复行:withopen(somefile,'r')
系统 2019-09-27 17:45:27 2229
需求有一个抽奖应用,从所有参与的用户抽出K位中奖用户(K=奖品数量),且要根据每位用户拥有的抽奖码数量作为权重。如假设有三个用户及他们的权重是:A(1),B(1),C(2)。希望抽到A的概率为25%,抽到B的概率为25%,抽到C的概率为50%。分析比较直观的做法是把两个C放到列表中抽选,如[A,B,C,C],使用Python内置的函数random.choice[A,B,C,C],这样C抽到的概率即为50%。这个办法的问题是权重比较大的时候,浪费内存空间。更
系统 2019-09-27 17:45:25 2229