摘要: 断言 凡是用print()来辅助查看的地方,都可以用断言(assert)来替代: assert的意思是,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错。 如果断言失败,assert语句本身就会抛出AssertionError。 启动Python解释器时可以用-O参数 阅读全文
posted @ 2018-11-27 20:50 刘-皇叔 阅读(638) 评论(0) 推荐(0) 编辑
摘要: try try .... except ... else 一个try语句可以有多个except语句。 当try块包含可能引发不同类型的异常的语句时,这就很有用。 还可以提供一个通用的except子句,它处理任何异常。 在except子句之后,可以包含一个else子句。 如果try:block中的代码 阅读全文
posted @ 2018-11-27 20:43 刘-皇叔 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过self变量: 但是,如果Student类本身需要绑定一个属性呢?可以直接在class中定义属性,这种属性是类属性,归Student类所有: 当我们定义了一个类属性后,这个属性虽然归类所有,但 阅读全文
posted @ 2018-11-27 17:43 刘-皇叔 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有 阅读全文
posted @ 2018-11-27 17:30 刘-皇叔 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能 阅读全文
posted @ 2018-11-27 17:20 刘-皇叔 阅读(357) 评论(0) 推荐(1) 编辑
摘要: 面向对象简介 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP 阅读全文
posted @ 2018-11-27 16:47 刘-皇叔 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 序列化 在程序运行的过程中,所有的变量都是在内存中,可以随时修改变量,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatt 阅读全文
posted @ 2018-11-27 16:16 刘-皇叔 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中。 查看当前目录的绝对路径: 创建一个目录:os.mkdir() 删除一个目录:os.rmdir() os.path.join() 把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处 阅读全文
posted @ 2018-11-27 16:00 刘-皇叔 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 打开文件对象 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。 打开一个文件对象,使用Py 阅读全文
posted @ 2018-11-27 15:30 刘-皇叔 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 模块 在Python中,一个.py文件就称之为一个模块(Module)。 模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。 import语句 可以通过在其他Python源文件中执行import语句来将任何Python源文件用作模块。 当解释器遇到 import 语句,如果模 阅读全文
posted @ 2018-11-27 14:33 刘-皇叔 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 偏函数 在Python的functools模块众多的功能中,其中有一个就是偏函数,我们称之为 partial function。 当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。 int()函数可 阅读全文
posted @ 2018-11-27 12:02 刘-皇叔 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 装饰器 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象(函数的指针)。 实质: 是一个函数。 参数:是你要装饰的函数名(并非函数调用)。 返回:是装饰完的函数名(也非函数调用)。 作用:为已经存在的对象添加额外的功能 阅读全文
posted @ 2018-11-27 12:00 刘-皇叔 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: 嵌套函数与非局部变量 在函数中定义另一个函数称为嵌套函数。嵌套函数可以访问包围范围内的变量。 nonlocal关键字 使用nonlocal关键字可以修改外层函数中变量的值: 输出: 闭包闭包也称词法闭包,如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是 阅读全文
posted @ 2018-11-27 11:27 刘-皇叔 阅读(1876) 评论(0) 推荐(1) 编辑
摘要: filter filter()函数用于过滤序列。filter()接收一个函数和一个序列。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计 阅读全文
posted @ 2018-11-27 10:41 刘-皇叔 阅读(455) 评论(0) 推荐(0) 编辑
摘要: map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 例如: 输出: map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list( 阅读全文
posted @ 2018-11-27 10:25 刘-皇叔 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 变量可以指向函数 函数本身也可以赋值给变量,即:变量可以指向函数: 输出: 函数名也是变量 对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数。 如果把abs指向其他对象: 输出: 高阶函数 一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数。 阅读全文
posted @ 2018-11-27 10:08 刘-皇叔 阅读(127) 评论(0) 推荐(0) 编辑
摘要: return语句 return [expression]语句退出一个函数,可选地将一个表达式传回给调用者。没有参数的return语句与return None相同。 变量范围 变量的范围决定了可以访问特定标识符的程序部分。Python中有两个变量的基本范围:全局变量局部变量 全局与局部变量 在函数体内 阅读全文
posted @ 2018-11-27 09:52 刘-皇叔 阅读(2178) 评论(0) 推荐(0) 编辑
摘要: 匿名函数 python 使用 lambda 来创建匿名函数。 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。 lambda 只是一个表达式,函数体比 def 简单很多。 lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 lambda 阅读全文
posted @ 2018-11-27 09:46 刘-皇叔 阅读(294) 评论(0) 推荐(0) 编辑
摘要: break break语句用于提前终止当前循环。放弃循环后,直接执行循环块下一个语句。break语句可以在while和for循环中使用。如果使用嵌套循环,则break语句将停止执行最内层循环,并在块之后开始执行代码的下一行。 输出: continue continue语句将控制返回到当前循环的开头。 阅读全文
posted @ 2018-11-27 09:24 刘-皇叔 阅读(1136) 评论(0) 推荐(0) 编辑
摘要: 语法 Python中的for语句能够遍历任何序列的项目,基本语法: for循环中使用else语句 如果else语句与for循环一起使用,则只有在for循环正常终止(而不是遇到break语句)时才执行else块。 搜索列表中的偶数的用法: 输出: range()函数 内置的函数range()是对一系列 阅读全文
posted @ 2018-11-27 08:54 刘-皇叔 阅读(3435) 评论(0) 推荐(0) 编辑