python3小点1、locals();查看当前所有变量 测试是否定义过一个值finlocals();2、丰富的else语句: 在Python中,else语句不仅能跟if语句搭,构成要么怎样,要么不怎样的语境;Ta还能跟循环语句(for语句或者while语句),构成干完了能怎样,干不完就别想怎样的语境;其实else语句还能够跟我们刚刚讲的异常处理进行搭配,构成没有问题,那就干吧的语境。3、with语句: 使用with语句可以使你不必再担心文件打开后却忘了关闭的尴尬,with语句会自动处理文件的打开和关闭,如果中途出现异常,会执行清理代码,然后确保文件自动关闭,with语句处理多个项目的时候,可以用逗号隔开写成一条语句:withA()asa,B()asb:4、多条语句 python中一行可以写多个语句,用分号(;)分开即可5、短路逻辑(andnotor) 逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较高深,举个例子,表达式xandy,需要x和y两个变量同时为真(True)的时候,结果才为真。因此,如果当x变量得知是假(False)的时候,表达式就会立刻返回False,而不用去管y变量的值。这种行为被称为短路逻辑(shortcircuitlogic)或者惰性求值(lazyevaluation)6、python四舍五入 int()将小数转换为整数,小数取整会采用比较暴力的截断方式,即向下取整。(注:5。5向上取整为6,向下取整为5)。四舍五入法:int(5。40。5)5;int(5。60。5)67、中文变量名 Pyhton3源码文件默认使用utf8编码(支持中文),可以给变量命名中文名;你好haha,我是中文变量名8、逻辑操作符优先级(andnotor) notorand的优先级是不同的:notandor;9、断言assert assert:断言;当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。可以用assertError来自定断言是异常类型10、foriin foriinlists:in是成员资格运算符,所以foriin5:会报错;11、append()和extend()方法 append()方法是将参数作为一个元素增加到列表的末尾、extend()方法则是将参数作为一个列表去扩展列表的末尾。12、负数索引 python支持负数索引,正常索引是从左到右索引,负数索引是从右到左列表内容11333285688:::正常下标012345负数下标65432113、分片: 分片:list1〔1,3,2,9,7,8〕;list1〔::2〕〔1,2,7〕list1〔::0〕error步长不能为0list1〔::2〕〔8,9,3〕步长可以是负数14、列表排序 顺序排序:list1。sort()逆序排序:list1。sort()。reverse()或者list1。sort(reverseTrue);15、列表、元组 列表:一个大仓库,你可以随时往里边添加和删除任何东西;元组:封闭的列表,一旦定义,就不可改变(不能添加、删除或修改)16、元组推导式 tuple1(x2forxinrange(10))tuple1是一个生成器,用next()方法调用17、Rr r是原始字符串操作符。18、序列: 列表、元组、字符串统称为序列,共同点:都可以通过索引得到每一个元素默认索引值总是从0开始(当然灵活的Python还支持负数索引)可以通过分片的方法得到一个范围内的元素的集合有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)19、DRYDontRepeatYourself20、global、nonlocal 修改全局变量的值用global关键字;在嵌套的函数中,内部函数想修改外部函数的局部变量,使用nonlocal关键字;21、递归函数调用自身设置了正确的返回条件22、字典 字典不支持一键多值。23、fromkeys() fromkeys方法是直接创建一个新的字典,不要试图使用它来修改一个原有的字典,因为它会直接无情的用把整个字典给覆盖掉。24、frozenset() 不可变集合:frozenset();25、集合是无序的 集合是无序的,不可用索引值索引;set1{1,1。0}为{1。0},1和1。0在set里等值;26、open() open()函数默认的打开模式是rt,即可读、文本的模式打开。27、f。seek() f。seek()定位的文件指针是按字节为单位进行计算的。28、pickle pickle的实质就是利用一些算法将你的数据对象存储成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上。29、类:封装、继承、多态 封装 对外部隐藏对象的工作细节 继承 子类自动共享父类之间数据和方法的机制 多态 可以对不同类的对象调用相同的方法,产生不同的结果30、类的定义: 类的属性和方法定义应该尽可能的抽象,更符合面向对象的思维。 31、init()方法 init()特殊方法不应当返回除了None以外的任何对象,只能返回None。 init()shouldreturnNone 32、子类定义了父类的方法 当子类定义了与父类相同的属性和方法时,会将父类属性或方法覆盖,子类对象调用的时候会调用到覆盖之后的新属性或方法,父类的仍然存在,只是子类对象看不到。 33、super()函数 super()函数的超级之处在于你不需要明确的给出任何基类的名字,它会自动的帮你找出所有的基类以及对应的方法,由于你不用给出基类的名字,这就意味着你如果需要改变了类继承关系,你只要改变class语句里的父类即可,而不必在大量代码中去修改所有被继承的方法。 34、钻石继承(菱形继承) 多重继承容易导致重复调用问题,程序应该可控,而不能受到继承关系影响。 35、issubclass(class,classinfo) issubclass(class,classinfo)函数:判断一个类是否为另一个类的子类 一个类被认为是其自身的子类。classinfo可以是类对象组成的元祖,只要class与其中任何一个候选类的子类,则返回True。在其他情况下,会抛出一个TypeError异常。36、isinstance(object,classinfo) isinstance(object,classinfo)函数:判断对象a是否为类A的实例对象如果object是classinfo的子类的一个实例,也符合条件。如果第一个参数不是对象,则永远返回False。classinfo可以是类对象组成的元祖,只要class与其中任何一个候选类的子类,则返回True。如果第二个参数不是类或者由类对象组成的元祖,会抛出一个TypeError异常。37、python修饰符 python修饰符:其实Python的修饰符就是一种优雅的封装,但要注意的是只可以在模块或类定义内对函数进行修饰,不允许修饰一个类,一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。somethingdeff():print(IloveFishC。com!)相当于deff():print(IloveFishC。com!)fsomething(f)复制代码38、魔法方法 魔法方法总是被双下划线包围,例如init(),init()方法的返回值一定是None,不能是其它。当重写init()方法时一定不能忘记。39、new()方法 new()是在一个对象实例化的时候所调用的第一个方法。它跟其他魔法方法不同,它的第一个参数不是self而是这个类(cls),而其他的参数会直接传递给init()方法的。40、python三大容器 python基于序列的三大容器是列表、元组、和字符串。41、迭代 迭代:迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次迭代,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。迭代器不是一个容器,是实现了next()方法的对象。42、迭代器不能取上一个值 迭代器性质决定没有办法回退,只能往前进行迭代。不能获取上一个值。43、如何判断是否有迭代功能 判断一个容器是否拥有iter()和next()方法来判断是否具有迭代功能。44、访问set元素 对于无法随机访问的数据结构set而言,迭代器是唯一的访问元素的方式。45、协同程序 协同程序就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。Python是通过生成器来实现类似于协同程序的概念:生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。46、生成器、迭代器 生成器所能实现的任何操作都可以用迭代器来代替,因为生成器实际上就是基于迭代器实现的,生成器只是一个yield语句,内部自动创建iter()和next()方法。将一个函数改为生成器说白了就是将return改为yield。生成器的最大作用是使得函数可以保留现场,当下一次执行该函数是从上一次结束的地方开始,而不是重头再来。generator是用来产生一系列值的yield则像是generator函数的返回结果yield唯一所做的另一件事就是保存一个generator函数的状态generator就是一个特殊类型的迭代器(iterator)和迭代器相似,我们可以通过使用next()来从generator中获取下一个值通过隐式地调用next()来忽略一些值47、python手动定义const常量定义,实现const。NAME你好,NAME为常量不可变。 简单实现:不可改变,常量名全部大写。classConst:defsetattr(self,name,value):ifnameinself。dict:raiseTypeError(常量无法改变!)ifnotname。isupper():raiseTypeError(常量名必须由大写字母组成!)self。dict〔name〕valueimportsyssys。modules〔name〕Const()复制代码 sys。modules是一个字典,它包含了从Python开始运行起,被导入的所有模块。键就是模块名,值就是模块对象。importsyssys。modules〔name〕A();复制代码48、python包 python的包必须有一个init()。py文件,可以为空文件,但必须有。用来告诉python将该文件夹当成一个包处理。