您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > python核心编程笔记
1.26.20151对于python文件.py,如果你直接双击它会启动DOS命令行,但是一般是一闪而过的结果,对于这种情况,你可以在末尾写上raw_input()使得命令行停留直到你输入为止。Python没有大括号,而是使用不同缩进区分不同代码块。2元素列表集合以及字典都可以存储任何互不相同的数据。访问字典的键值如dict.keys()。3for循环和range或者xrange一起使用用于计数4python的灵活如一次性输出多个变量值以及一次性赋值多个值5range函数经常和len函数一起使用进行字符串索引。比如知道某个字符串里的每个字符的对应索引:6函数enumerate解决了在循环里要么仅仅是循环索引值要么仅仅循环元素值的缺点:实际上,返回的形式为两个值,第一个是索引值,第二个是元素值。7列表解析,如:8文件操作:其中r表示读取文件,w表示写入文件,a表示添加。其他的如b表示是二进制访问文件。如果未指定那么默认是r。打开后,返回一个文件句柄也就是认为的地址吧。通过访问文件对象调用文件的方法如readlines等。当然,这样的格式就是指默认和python文件是在一个目录下的。记住open后必须wenjian.close()9在输出时候,一个有有意思的技巧就是使用逗号,抑制自动生成的换行符号。因为每次print后都会自动生成一个换行符。10使用函数file()等价于open,但是前提都是文件要首先存在。11捕捉错误和异常,函数try–except:12定义函数时候,默认参数问题:表示参数为debug但是在定义参数时候给赋初值了,如果调用函数时候没有初始化函数参数那么就使用默认的参数值为true,反之就使用你自定义的参数值。13关于定义类对象,格式为classClassName(父类名称):可以在括号里提供一个父类名称表示继承关系,如果没有的话那么就是使用object作为父类继承。在类里面定义函数的时候,作为参数始终要有self:作用就等价于this。每个类都有一个默认函数__init__()作用初始化实例对象。用户可以重新定义这个函数。14说明下,self.__class__等价于实例化它的类的名字,就是类名本身。15模块是一个独立文件,组合了各种函数类等。模块是不带后缀.py的文件。使用sys模块的标准输出函数write(),函数不会再字符串后自动换行。16使用反斜杠继续代码:1.27.20151python允许链式赋值形式,23python支持多元赋值,建议是这样写的,代码更具可读性。4灵活的交换两个数,5属性__doc__可以查看文档字符串,对于方式为a.__doc__,其中a是对象,类或模块或函数等:str.__doc__str(object='')-string\n\nReturnanicestringrepresentationoftheobject.\nIftheargumentisastring,thereturnvalueisthesameobject.deffunc():'thisisastring'func.__doc__'thisisastring'1.28.20151一个典型的python文档如图:2关于如何判断一个模块是被导入还是被执行,使用变量__name__:3python使用引用计数来记录内存里所有对象,当这个对象一被创建就创建了一个引用计数,如果这个对象不被需要时候则引用计数为0就很可能被回收。考虑一个对象的引用计数增加的情况:考虑一个对象的引用计数减少的情况:当对象销毁:当变量被赋值给另一个对象,原来对象的引用就会减1。4介绍两个脚本代码1:这段代码的作用是将你输入的内容写入到文件里。反之,读取文件的内容到屏幕上:同时,try:exceptIOError,e:else:如果有异常的话,抛出异常。1.29.20151代码对象:2异常:3python的扩展切片语法,多维切片和步进切片和省略切片:多维切片,认为是按照最短切片输出:4xrange函数:——类似range但是针对大数据集合。5python里判断两个对象是否是共享一个地址,即是否共享一个内存空间,使用函数is或isnot:操作符is等价于id符号。6整型对象和字符串对象都是不可变的对象,而浮点类型等是可变的:发现整型对象时候,登记于b=a共享一个地址。按照文章的意思,python是为了使得运算更加高效,因此才缓存这些小整数的,python认为这些小整数是经常被用到的。因为对不经常用到的大整数的内存地址就不一样。记住,python的高效缓存地址,出现这样情况的小整数范围为整数范围在300以内,这个是我测出的2.7.8版本的结果。7布尔类型是andornot,三个。其中not是三个中最高的。只比所有比较运算符低。8几个标准的内建函数:函数cmp()同样可以用于比较字符和数字等。很多情况下,str()repr‘’这三个的输出结果是一样的。确认一个对象的类型使用函数type,因为python不支持重载,因此当你需要确认你调用的是你需要的函数或对象的时候,可以使用这个函数。同样可以使用函数isinstance():从这个例子看出,函数是将两个参数进行比较,看是否是相同类型的。9存储模型:更新模型:三种访问模型:直接访问,顺序访问和映射访问。直接方法就是所有的数字类型,不是指容器类型。顺序访问包括字符串,列表和元组。映射访问是指键值对,如字典。101.30.20151产生一个复数,调用实数部分和虚数部分用属性real和imag23注意点:真正的除法通过引入from__future__importdivision4这个例子说明,地板除法floor的作用等价于//5关于位操作符的说明见书本p1106举例一些类型转换函数,(函数complex作用是将数值转换为复数类型,需要有两个参数)7python的内建函数,用于数值运算:其中,我认为常用就是abs,pow,round对于其他几个认为不是经常使用的函数。函数round是四舍五入的作用,可以有两个参数round(number,m),其中m是你指定的四舍五入的小数位数。8内建函数oct()和hex()是将任意进制的参数转换为相应的八进制和十六进制。Ord()得到参数对应的ascii码。下面的函数都是适用于整数参数。9核心模块random:10字符串的合并以及列表的合并:函数extend()格式。11有步长的切片操作,使用3个参数,第三个参数指定步长。12看下面的几个例子:关于range的步长以及逆序步长的情况。如果改为forIin[None]+range(-1,-len(s),-1)那么结果大不一样。P1291.31.20151类型转换函数list,str,tuple()函数。关于浅拷贝和深拷贝首先见P130。2函数zip:3字符串是不允许改变的序列,就是说不允许仅改变部分子串。但可以通过切片和加号拼凑成一个新串。或索性整个重新赋值。。同样的,如果你真需要仅仅删除某个字符或部分字符,那么结合切片操作和加号也可以做到:通过使用赋值为一个空字符或者使用函数delastring4编写一个能检查是否是合法标识符的小脚本程序:5join()方法:看看这个方法的正确使用方法注意:这个方法只是接受一个参数,那么如果将多个参数连接起来,那么就需要使用元组符号。其次,认为a.join(b)这样使用是得不到想要的结果的。5程序员更习惯写成效果等价于加号+62.5.20151函数chr和ord,chr(number)表示将参数数字转换为对应的字符;函数ord()将字符参数转换为对应的数字。2字符串的内建方法很多,详见p145。对于string.find(‘str’,begin=,end=len(s1)),如find(‘or’,22)表示寻找的子串or,同时起始位置是22,并且函数默认end参数值字符串长度。函数split()如果没有参数则默认是以空格作为分隔符。2.6.20151三引号,典型应用就是一段HTML或者SQL代码。23使用Unicode的规则:尤其是第四个规矩,函数encode和decode,用在将数据写入文件数据库等时候。有关python的Unicode讲解p150左右没怎么看!!!4关于python的re模块:注意python的字符串并不是以NUL或者\0结尾的。5列表操作的append,remove函数,参数都是要除去的元素内容。列表函数sorted和reserved以及删除整个列表函数如delalist。一般比较列表a和列表b也是使用函数cmp()如果想将切片操作的结果赋值给变量,那么也要确保等号左边也是一个(空)列表变量,这样才能接受并返回切片操作的结果。成员操作in和notin。连接操作符+=等价于函数extend,一般也建议使用这个函数如,a.extend(b),将b列表添加到列表a中。这个函数是在原有列表的基础上改变,而使用+则是新建了一个列表。而且注意,使用+还是有很多限制的,将列表类型和字符串类型进行相加是不允许的。但使用函数append则不存在这个问题。注意函数title前面讲过是将字符串的首字母大写操作。列表生成函数list()以及元组生成函数tuple()6列表的内建函数:说明下,如果直接使用函数index()得到某个元素的下标,如果这个元素不存在那么将报错。正确保险做法是首先使用函数in或notin来判断这个元素是否存在,然后在使用这个函数得到下标:(避免错误)7比如列表的函数sort,extend,reserve是没有返回值的。而reserved和sorted函数则是有返回值的。
本文标题:python核心编程笔记
链接地址:https://www.777doc.com/doc-4210877 .html