六星源课堂:Python学习tips
1.快速排列
是一种效率很高的排序算法,是对冒泡排序的一种改进排序算法。快速排序首先任意选取一个数据(通常选待排序列表中的第一个数)作为基准数据,将待排序列表中的数据分割成独立的两部分,所有比基准数据小的数都放到它左边,所有比基准数据大的数都放到它右边,此时基准数据排序完成,第一轮快速排序完成。然后再按此方法对两部分的数据分别进行快速排序,整个排序过程可以递归进行,直到被分割的数据只有一个或零个时,递归结束,列表排序完成。快速排序的名字起得简单直接,因为这种排序算法速度快,效率高,是处理大数据最快的排序算法之一。
2.多态是指一类事物有多种形态,比如动物类,可以有猫,狗,猪等等。(一个抽象类有多个子类,因而多态的概念依赖于继承)。
多态性是指具有不同功能的函数开源使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。
调用不同的子类将会产生不同的行为,而无须明确知道这个子类实际上是什么,这是多态的重要应用场景。而在python中,因为鸭子类型(duck typing)使得其多态不是那么酷。鸭子类型是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。
3.Python中的内存分配和管理
在python中,一切都是对象,可能无法控制内存分配,但是您可以优化程序来更好地分配内存。值存储在内存中,并且变量指向该内存位置,在python中,整个对象存储在内存中,对象可以是整数、字符串或列表,以及指向对象的变量。为了理解,让我们了解python对象的作用!内存中的PyObject:1.类型(type):整数、字符串、浮点数等2.引用计数(ref count):绑定到该对象的引用的数量3.值(value):值/数据/信息。变量“ a”和“ b”值相等,具有相同的id(内存位置),因此表示相同的对象,而c有不同的id值。当前三个变量在内存中有两个python对象。现在,如果我们为“ a”分配一个新值,即a = 3。 “ a”指向一个新对象,而 “ b”仍然指向原对象。一旦对象的ref count变为0,垃圾收集器就会将其从内存中删除。
4.Python2.x 与 3.x 版本区别:
print 语句没有了,取而代之的是 print() 函数。
Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。由于 Python3.x 源码文件默认使用 utf-8 编码,所以使用中文就更加方便了。
在 Python 2.x 中 / 除法,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。在 Python 3.x 中 / 除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。捕获异常的语法由 except exc, var 改为 except exc as var。使用语法except (exc1, exc2) as var 可以同时捕获多种类别的异常。Python 2.6 已经支持这两种语法。在 2.x 时代,所有类型的对象都是可以被直接抛出的,在 3.x 时代,只有继承自BaseException的对象才可以被抛出。2.x raise 语句使用逗号将抛出对象类型和参数分开,3.x 取消了这种奇葩的写法,直接调用构造函数抛出对象即可。
数据类型)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long,新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法如下:
不等运算符:Python 2.x中不等于有两种写法 != 和 <>,Python 3.x中去掉了<>, 只有!=一种写法。
5.约束
什么是接口以及作用?接口时一种数据类型,主要用于约束派生类中必须实现指定的方法。Python中不存在,Java和C# 中是存在的。
Python中使用过什么来约束呢?抽象类+抽象方法;人为主动抛出异常。
约束时,抛出的异常是否可以用其他的?
不专业:raise Exception(".send() 必须被重写.")
专业:raise NotImplementedError(".send() 必须被重写.")。
应用场景:多个类,内部都必须有某些方法时,需要使用基类+异常进行约束。
以上就是本次分享的全部内容,想要学习编程的小伙伴们,欢迎前往六星源课堂,获取更多技能与教程。