一:range()与xrange()的比较:在Python中,range和xrange均可以用来做迭代的范围,不过range返回的是list,而xrange则返回一个xrangeobject。如下:type(range(10))type'list'type(xrange(10))type'xrange'xrange()比range()效率更高:因为range返回的是一个list对象,然后再对list对象进行遍历,而xrange返回的是xrange对象,每次迭代才返回本次迭代的结果。比如:forxinrange(10000):willgeneratealistoftenthousandelements,andwillthenloopthrougheachoftheminturnforxinxrange(10000):willgenaratetenthousandintegersonebyone,passingeachtothevariablexinturn.二:内置函数:ord()与chr()可以实现一个字符与ascii之间的转换,比如:ord('a')97chr(97)'a'例如将英文字母放入列表中:list=[]foriinxrange(ord('a'),ord('z')+1,1):...list.extend(chr(i))...注意:chr()与str()的区别:例如以下代码:chr(97)'a'str(97)'97'将一个字符串转换为对应的ascii码值,map比如:map(ord,abcde)[97,98,99,100,101]反过来,比如:map(chr,range(97,101))['a','b','c','d']在将列表中的字符连接起来:.join(map(chr,range(97,101)))'abcd'三、os模块:1、getcwd():返回一个表示当前工作目录的字符串,比如:os.getcwd()'F:\\films'type(os.getcwd())type'str'2、listdir():返回一个参数所指定目录的所有文件名字符串的列表,比如:type(os.listdir(os.getcwd()))type'list'os.listdir(os.getcwd())['.metadata','.project','.pydevproject','src']四、内置数据类型:1、list:注意:使用extend()添加元素时,注意参数时list,比如:list=[]list.extend(asdasdsa)list['a','s','d','a','s','d','s','a']list.extend(['adasdsada'])list['a','s','d','a','s','d','s','a','adasdsada']list.extend(213121)Traceback(mostrecentcalllast):Filestdin,line1,inmoduleTypeError:'int'objectisnotiterablelist.extend(12121)list['a','s','d','a','s','d','s','a','adasdsada','1','2','1','2','1']在python中,字符串就是一个序列,看成一个列表类型。五、模块python的模块---最高级的程序组织单位。1、模块中的语句:比如print语句2、模块的属性:内置属性:每个模块中都有内置模块。比如:dir()['__builtins__','__doc__','__name__','__package__']自定义属性:就是在模块中定义的属性。比如:count=0str=iloveyoudir()['__builtins__','__doc__','__name__','__package__','count','str']3、模块中的函数:内置函数:可以在模块中直接调用。一些常用内置函数,比如:range()与xrange()以下常用内置函数:help(obj)在线帮助,obj可是任何类型callable(obj)查看一个obj是不是可以像函数一样调用repr(obj)得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝eval_r(str)表示合法的python表达式,返回这个表达式dir(obj)查看obj的namespace中可见的namehasattr(obj,name)查看一个obj的namespace中是否有namegetattr(obj,name)得到一个obj的namespace中的一个namesetattr(obj,name,value)为一个obj的namespace中的一个name指向vale这个objectdelattr(obj,name)从obj的namespace中删除一个namevars(obj)返回一个object的namespace。用dictionary表示locals()返回一个局部namespace,用dictionary表示globals()返回一个全局namespace,用dictionary表示type(obj)查看一个obj的类型isinstance(obj,cls)查看obj是不是cls的instanceissubclass(subcls,supcls)查看subcls是不是supcls的子类类型转换函数:chr(i)把一个ASCII数值,变成字符ord(i)把一个字符或者unicode字符,变成ASCII数值oct(x)把整数x变成八进制表示的字符串hex(x)把整数x变成十六进制表示的字符串str(obj)得到obj的字符串描述list(seq)把一个sequence转换成一个listtuple(seq)把一个sequence转换成一个tupledict(),dict(list)转换成一个dictionaryint(x)转换成一个integerlong(x)转换成一个longintergerfloat(x)转换成一个浮点数complex(x)转换成复数max(...)求最大值min(...)求最小值自定义函数:自己定义的函数,使用关键字def定义的,不需要定义返回类型,Python能返回任何类型。比如:deffunc():...printhelloworld!...func()helloworld!lambda函数:格式如下:lambdaarg1,arg2,…:表达式比如:g=lambdax,y:x*yprintg(12,12)144printgfunctionlambdaat0x00DEE930表示:lambda语句构建的其实是一个函数对象比如以下的一些应用:foo=[1,2,4,5,6,7,8,9,10]printfilter(lambdax:x%2==0,foo)[2,4,6,8,10]printmap(lambdax:x+10,foo)[11,12,14,15,16,17,18,19,20]printreduce(lambdax,y:x+y,foo)52generator函数:该函数的定义域普通函数的定义没有什么区别,只是在函数体内使用yield生成数据项即可。与yield关键字的使用。defgene():...foriinrange(10):...yieldi使用了yield关键字...printgene()generatorobjectgeneat0x00DE2B70#表示是generator函数对象使用for循环对generator进行遍历,如下:foriingene():...printi...0123456789使用generator函数对象中next()方法遍历,如下:generator=gene()printgenerator.next()0printgenerator.next()1printgenerator.next()2printgenerator.next()…….printgenerator.next()Traceback(mostrecentcalllast):Filestdin,line1,inmoduleStopIterationYield与return的区别:如下代码:deffunc():...foriinrange(5):...returni...printfunc()0而yield:deffunc():...foriinrange(5):...returni...printfunc()0yield关键字:包含yield语句的函数会被特地编译成生成器。当函数被调用时,他们返回一个生成器对象,这个对象支持迭代器接口。函数也许会有个return语句,但它的作用是用来yield产生值的。六、python中的变量和常量:常量:Python中不像java使用关键字(staticfinal)来声明一个常量,python中没有提供关键字,可以自己定义个常量类来存放常量局部变量:通常是在函数或者类的方法中直接使用,在该函数或者类方法之外,不能引用该变量。全局变量:在程序文件中任何地方都可以引用,包括函数和类的内部;但是如果在函数和类中对全局变量赋值,必须在该函数或者类中声明该变量为全局变量,否则经过赋值操作后,变量为本地变量。重点:如果在函数或类中对全局变量进行了赋值,则该全局变量就变成了局部变量,无论是在引用该变量之前还是在引用该变量之后。如果在函数或类中未对全局变量进行赋值操作,那么对于该函数来说,此变量是一个全局变量。所以,这时有一个问题,怎样才能在函数或类中对全局变量进行重新赋值呢?这时就要使用到global关键字。global的作用是:声明为全局变量,那么无论是否对其进行了赋值操作,该变量都将作为全局变量。在函数或类中使用global声明的变量,就为全局变量,比如:deffunc():...globalaaaa...aaaa=12321312321...printaaaa...func()12321312321printaaaa12321312321七、python中的面向对象:1、self关键字:类中的方法必须有一个self参数。2、属性和方法访问权限:python中的私有属性和私有方法不像java中的私有属性,使用private修饰符,而是在属性或方法的名字前面使用两个下划线表示私有性。比如__price,__grow()分别表示的是私有属性和私有方法。类的外部不能访问私有属性。怎样访问类中的私有属性:格式:Instance._classname__attribute,比如:apple._Fruit__color通常不采用以上做法来访问私有属性,而是与java一样,通过setter与getter实现。属法:类属性可以被类访问,也可以被实例对象访问,但是实例属性只能被实例访问。与java不同的是,java中使用static关键字修饰类属性,而python中不使用任何修饰符,只要声明一下就可以,但是实例属性要使用self关键字作为前缀的。实例属性:以self作为前缀的属性。类属性:直接声明的变量,python中类属性都能被类和对象访问。类的内置属性:用于管理内的内部关系,比如:__dict__、__base__、__doc__方法:类中