10 2018 档案
摘要:装饰器详解 装饰器的具体定义: 1、把要装饰的方法作为输入参数; 2、在函数体内可以进行任意的操作(可以想象其中会有很多应用场景); 3、只要确保最后返回一个可执行的函数即可(可以是原来的输入参数函数,也可以是一个新函数)。 装饰器其实就是一个闭包,把一个函数当做参数后返回一个替代版函数,闭包是装饰
阅读全文
摘要:嵌套函数: python允许创建嵌套函数。也就是说我们可以在函数里面定义函数,而且现有的作用域和变量生存周期依旧不变。 例子: #encoding=utf-8def outer(): name="python" def inner():#outer函数内部定义的函数 print name retur
阅读全文
摘要:在python中,函数会创建一个自己的作用域,也称为为命名空间。这意味着在函数内部访问某个变量时,函数会优先在自己的命名空间中寻找。 通过内置函数globals()返回的是python解释器能知道的变量名称的字典(变量名:值); 而locals()函数返回的是函数内部本地作用域中的变量名称字典。由此
阅读全文
摘要:从命令行界面拷贝的内容包含过个">>>",函数的作用是用正则把每两个">>>"之间的字符取出来,然后把包含“Traceback...”的字符的内容去掉,再写到另一个文件中 代码: #coding=utf-8import reimport osdef clearContent(fileName): r
阅读全文
摘要:正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串。 将匹配的子字符串替换或者从某个字符串中取出符合某个条件的子字符串,或者是在指定的文章中抓取特定的字符串等。 Python处理正则表达式的模块是re模块,它
阅读全文
摘要:with是从Python2.5引入的一个新的语法,它是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和 资源分配释放相关代码统统去掉,简化try….except….finlally的处理流程。 with通过__enter__方法初始化,然后在__exit__
阅读全文
摘要:os.walk(top, topdown=True, onerror=None, followlinks=False)遍历目录,topdown=false表示先返回目录,后返回文件 参数说明: top:表示需要遍历的目录树的路径。 topdown的默认值是True,表示首先返回根目录树下的文件,
阅读全文
摘要:模板字符串:用string模块里的Template Template()里面把字符串中某个值用设置变量${key}的方式先写好,然后在substitute()的方式把变量用其他值代替,就完成了字符串的替换 >>> from string import Template >>> a=Template(
阅读全文
摘要:>>> d{'a': 5, 'c': 3, 'b': 4} >>> d.items()[('a', 5), ('c', 3), ('b', 4)] 字典的元素是成键值对出现的,字典的排序可用sorted,用关键字key指定排序依据的值--key或者value 按照值排序: #把d.items()所对
阅读全文
摘要:一行搞定-统计一句话中每个单词出现的个数 >>> s'i am a boy a bood boy a bad boy' 方式一:>>> dict([(i,s.split().count(i)) for i in s.split()]){'a': 3, 'boy': 3, 'i': 1, 'am':
阅读全文
摘要:首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别。 什么是可变对象,什么是不可变对象: 可变对象是指,一个对象在不改变其所指向的地址的前提下,可以修改其所指向的地址中的值; 不可变对象是指,一个对
阅读全文
摘要:迭代器iter():节省内存 Iter()迭代器 每一次输出下一个值 >>> a=iter(range(10)) >>> a.next() 0 >>> a.next() 1 >>> a.next() 2 可以用捕获异常来排除超出迭代范围,或者判断长度 >>> try: ... 1/0 ... exc
阅读全文
摘要:打印斐波拉契数列前n项 #encoding=utf-8def fibs(num): result =[0,1] for i in range(num-2): result.append(result[-2]+result[-1]) return resultprint fibs(10) 结果:
阅读全文
摘要:例子1:递归实现嵌套列表求和 #encoding=utf-8a=[[1,2,3], [4,5,6], [7,8,9]]def listsum(L): result=0 for i in L: if isinstance(i,list): result +=listsum(i) else: resul
阅读全文
摘要:raw_input()输出结果都是字符串 Input()输入什么内容,输出就是什么内容
阅读全文
摘要:一:map():映射 map()函数在python2和python3中是区别的 python2中的定义:映射后,返回一个列表 >>> help(map)Help on built-in function map in module __builtin__: map(...) map(function
阅读全文
摘要:在这个功能上,repr和str的作用一样,把一个数据结构转换成字符串,例如: >>> str([1,2,3,4])'[1, 2, 3, 4]' >>> repr([1,2,3,4])'[1, 2, 3, 4]' eval是把字符串转换成数据结构,例如:>>> eval('[1,2,3,4]')[1,
阅读全文
摘要:python的函数中,有时会有类似*args,**keys这样的参数,代表的是可变参数,一个*表示元祖,两个*表示字典,就是说这个函数可以接受任何类型的参数,都不会报错,有些函数为了提高可用性,会加这样的参数描述,防止调用者传入不同类型的参数而报错 #encoding=utf-8def fun(a,
阅读全文
摘要:python简单方法判断三个数能否组成三角形 #encoding=utf-8 import math while True: str=raw_input("please input three numbers a,b,c:('stop' to exit)") print "####",str,typ
阅读全文
摘要:假设一段python程序有多重循环,我们都知道在一个循环当中,用break是退出当前的循环,然后继续下一次循环,但是如何才能跳出多重循环呢,实际就是结束所有的循环。 思路1::可以定义一个异常类,在需要退出循环的位置,跑出这个异常,就可以了,因为程序在遇到异常的时候,如果没有捕获异常的话,就是直接退
阅读全文
摘要:Python中的is和==的区别 Python中的对象包含三要素:id、type、value。 其中id用来唯一标示一个对象,type标识对象的类型,value是对象的值。 is判断的是a对象是否就是b对象,是通过id来判断的。 ==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。
阅读全文
摘要:代码: #encoding=utf-8for i in dir(__builtins__): #print "i:",i try: #这里的i是个字符串,并不能直接用dir(i)来生成内置方法列表,需要用eval来转换一下 if 'copy' in dir(eval(i)): print i exc
阅读全文
摘要:python中有两个下划线__的是内置方法,一个下划线_或者没有下划线的可能是属性,也可能是方法,也可能是类名,如果在类中定义的就是类的私有成员。 >>> dir(__builtins__)['ArithmeticError', 'AssertionError', 'AttributeError',
阅读全文
摘要:交互模式下调用对象的__repr__()方法,这个方法表示的是一个编码 >>> u"国庆节快乐"u'\u56fd\u5e86\u8282\u5feb\u4e50' 用print+对象是调用对象的__str__方法>>> print u"国庆节快乐"国庆节快乐>>> 定义一个类,重写__repr__和
阅读全文
摘要:新建const.py: #-*-coding:UTF-8-*- #Filename: const.py # 定义一个常量类实现常量的功能 # # 该类定义了一个方法__setattr()__,和一个异常ConstError, ConstError类继承 # 自类TypeError. 通过调用类自带的
阅读全文