摘要: 1 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls) obj是否是cls的对象或cls子类的对象 issubclass(sub,super) sub是否是super的子类 cls.\_\_bases\_\_ 获取cls的父类 阅读全文
posted @ 2017-04-24 21:49 思否丶 阅读(367) 评论(0) 推荐(0)
摘要: 1 封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口。 2 为什么要封装 封装数据:可以保护隐私(比如银行卡号、密码) 封装方法:隔离复杂度(把内部具体的复杂实现过程隐藏起来。) 在python中因为没有像java中那样的接口实现。所以我们这里说的向外提供的接口,是函数,也叫接口函数。 3 封 阅读全文
posted @ 2017-04-24 21:48 思否丶 阅读(478) 评论(0) 推荐(1)
摘要: 1 继承 继承:子类继承父类。继承是一种创建新类的方式。 2 继承的顺序 1. 因为python支持多继承,所以有时候不得不考虑继承的顺序。 2. Python类如果继承多个类,寻找类的方法有两种,分别是:广度优先和深度优先。 其中python3和python2中的新式类,采用的是广度优先。 pyt 阅读全文
posted @ 2017-04-24 21:47 思否丶 阅读(639) 评论(0) 推荐(0)
摘要:      面向对象的编程带来的主要好处之一是代码的复用,实现这种复用的方法之一是通过继承机制。      python中解决代码复用的方式:继承和组合。 1 什么是继承   &nb 阅读全文
posted @ 2017-04-24 21:46 思否丶 阅读(10163) 评论(2) 推荐(1)
摘要: 在python2中,有新式类和经典类和经典类的区别: 新式类 继承自object或object的子类,这样的类就叫新式类。 结果: 经典类 没有继承object或object的子类。 而在python3中不再有这种区别,所有的类不写括号,默认继承自object(都是新式类)。 阅读全文
posted @ 2017-04-24 21:46 思否丶 阅读(342) 评论(0) 推荐(0)
摘要: 1 迭代 迭代就是重复做一件事。 2 什么是迭代器协议 1. 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2. 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__i 阅读全文
posted @ 2017-04-24 21:45 思否丶 阅读(281) 评论(0) 推荐(0)
摘要: 函数式编程,一种编程规范。就是模仿数学里的函数的实现过程,如f(x)=2x+1。 python里并没有太多的函数式编程的内容,稍有涉及函数式编程的,如python中lambda表达式。 函数式编程的特点: 1. 不修改外部变量的值 2. 非常精简(以至于可读性非常差) 3. 模仿数学式的函数 阅读全文
posted @ 2017-04-24 21:44 思否丶 阅读(121) 评论(0) 推荐(0)
摘要: 1 面向过程的程序设计      在说面向对象的程序设计以前,先说下我们之前写的那些面向过程的程序的特点:针对性很强,针对特定的需求所写;流水线式的设计,先实现什么再实现什么,结构非常清晰。但耦合度非常高,牵一发而动全身。 总结面向过程的特点: 1. 阅读全文
posted @ 2017-04-24 21:42 思否丶 阅读(389) 评论(0) 推荐(0)
摘要: 匿名函数 匿名函数,顾名思义,没有名字的函数,也不用写return。 普通函数: 匿名函数: 直接用g()来调用该匿名函数,和上面普通函数一样,都实现了两个数的求和。":"和"lambda"之间的变量是匿名函数的形参。":"后面的是匿名函数的返回值。 匿名函数的好处: 想什么时候使用,就什么时候定义 阅读全文
posted @ 2017-04-24 21:42 思否丶 阅读(163) 评论(0) 推荐(0)
摘要: ```python data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35] def binary_search(num,data): if(len(data) 0): mid=int((len(data)) 阅读全文
posted @ 2017-04-24 21:41 思否丶 阅读(159) 评论(0) 推荐(0)
摘要: 递归 在函数内调用函数自身,那我们称之为递归函数。 日常生活中的递归 问题:有5个人,问第5个人年龄,他说他比第4个人大2岁;问第4个人年龄,他说他比第3个人大2岁;问第3个人年龄,他说他比第2个人大2岁;问第2个人年龄,他说他比第1个人大2岁;问第1个人年龄,他说他18岁。求第1个人年龄是多少? 阅读全文
posted @ 2017-04-24 21:40 思否丶 阅读(228) 评论(0) 推荐(0)
摘要: python3.6常用的内函数Built in Functions有哪些: | | | | | | | | | | | | |abs() |dict() |help() |min()|setattr() | |all()| dir() |hex() | next() |slice()| |any() 阅读全文
posted @ 2017-04-24 21:38 思否丶 阅读(501) 评论(0) 推荐(0)
摘要: 列表生成式(列表解析) 列表生成式(List Comprehensions) 在python中,我们可以直接在列表中写表达式,来构造一个列表生成式。 语法 类似于 优点 方便,改变了编程习惯,声明式编程。 补充 用list()将一个惰性序列变成列表(元组、集合也都可以这样做) 原理是:先将可迭代的对 阅读全文
posted @ 2017-04-24 21:37 思否丶 阅读(202) 评论(0) 推荐(0)
摘要: 生成器(generator)      在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。生成器本身就是迭代器。 1 生成器表达式 生成器表达式的语法和列表生成式的一样,只不过把列表生成式的[]换成()。 2 生成器函数 阅读全文
posted @ 2017-04-24 21:35 思否丶 阅读(343) 评论(0) 推荐(0)
摘要: 题目:利用协程来遍历目录下,所有子文件及子文件夹下的文件是否含有某个字段值,并打印满足条件的文件的绝对路径。 使用装饰器以后,无需再每次执行.send(None),形参target接收的是一个生成器。 整个编程采用了面向过程的思路。 面向过程需要把整个流程设计出来。 其好处就是:a.体系结构更加清晰 阅读全文
posted @ 2017-04-24 21:34 思否丶 阅读(2987) 评论(0) 推荐(0)
摘要: "a" in s s.count("elemente") len(s) "key" in dic; len(dic) "elemente" in s len(s) 总结: 1. 字符串和容器都可以计算长度len(), 检查某个元素是否属于(in) 2. 只有列表和字典有copy()。 3. 元组和字 阅读全文
posted @ 2017-04-24 21:32 思否丶 阅读(771) 评论(0) 推荐(0)
摘要: python的functools模块提供的功能。用来修改或设置函数的默认值。 将整形int的base参数重新设定默认值为 2,并返回给一个新的函数int2,以后int2等价于base=2的int()方法。 阅读全文
posted @ 2017-04-24 21:30 思否丶 阅读(143) 评论(0) 推荐(0)
摘要: 1 为什么要用装饰器 在介绍装饰器以前,我们先介绍一个写代码需要遵循的原则:开发封闭原则(OCP,Open Closed Principle)。一但产品上线,就尽量避免修改源代码。但在后期,也会添加各种需求。所以在设计之初,需要预留一些接口,用来作修改的手段。装饰器也应运而生。 开发封闭原则:已经实 阅读全文
posted @ 2017-04-24 21:29 思否丶 阅读(120) 评论(0) 推荐(0)
摘要: 1 函数可以用在哪些地方 函数作为第一类对象: 1. 可以赋值给变量 2. 可以作为参数 3. 可以作返回值 4. 可以作为容器的对象 2 闭包的概念 什么是闭包? 维基的解释:在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引 阅读全文
posted @ 2017-04-24 21:28 思否丶 阅读(136) 评论(0) 推荐(0)
摘要: 1 命名空间      命名空间(namesapce)用来记录变量的轨迹(记录名字的地方)。命名空间本质上是一个字典(dict),它的键就是变量名,值就是变量的值。A namespace is a mapping from names to obje 阅读全文
posted @ 2017-04-24 21:27 思否丶 阅读(481) 评论(0) 推荐(0)
摘要: 这里我们的环境是 python3 1 算术运算符 | | 加 | 减 | 乘 | 除 | 求整除 | 求余 | 指数 | | | | | | | | | | | 符号 | \+ | \ | \ | / | // | % | \ \ | | 用法 | 2+3 | 3 2 | 3\ 2 | 3/2 | 阅读全文
posted @ 2017-04-24 21:27 思否丶 阅读(152) 评论(0) 推荐(0)
摘要: ```python import time for i in range(101): print("\r%d%% %s"%(i,"#"*i),end="") time.sleep(0.5) ``` 阅读全文
posted @ 2017-04-24 21:26 思否丶 阅读(97) 评论(0) 推荐(0)
摘要: set类的元素一定是不可变数据类型。 set本身是可变数据类型 set和dict类似。 阅读全文
posted @ 2017-04-24 21:25 思否丶 阅读(137) 评论(0) 推荐(0)
摘要: 1 什么是编码?      人们通过显示器看到的数字符号,但是计算机是不能识别的。计算机因为电器特性,能识别高低电平。人们给高电平赋1,低电平赋0。因为计算机有了识别0、1的功能。但如何把01变成人们所看到的具体的符号和数字。这其中就涉及到编码。也就 阅读全文
posted @ 2017-04-24 21:24 思否丶 阅读(144) 评论(0) 推荐(0)
摘要: boolean是所有编程语言里面最常见的的类型,流程控制都需要用到它。 boolean有True和False两个值。 True: 1," "(空格),空容器等等都是真 False:空列表,空字典,空元组,空集合,空字符串,0,None 阅读全文
posted @ 2017-04-24 20:32 思否丶 阅读(357) 评论(0) 推荐(0)
摘要: 三级菜单简化版 阅读全文
posted @ 2017-04-24 20:31 思否丶 阅读(205) 评论(0) 推荐(0)
摘要: 字典dict特点:无序,键唯一(键值对) 字典占用的空间比list的大,是采用空间换取时间。 如果有2个键,后一个键对应的值会覆盖前一个键对应的值。 键是唯一的,且是不可变数据类型。 创建 增 删 同时添加多个元素或一个字典 改 查 遍历 其他 快速生成字典 阅读全文
posted @ 2017-04-24 20:30 思否丶 阅读(142) 评论(0) 推荐(0)
摘要: ```python A="dSdw\teWfdxs" print(A.capitalize()) #首字母改大写 print(A.lower()) #大写变小写 print(A.center(50,"*")) # *******************dSdw eWfdxs******************** print(A.count("d",1,9)) #等价于A[1:9... 阅读全文
posted @ 2017-04-24 20:29 思否丶 阅读(113) 评论(0) 推荐(0)
摘要: 1 文件操作流程 1 打开文件 对操作系统发起系统调用 要操作文件,需要获得文件的句柄。 可以通过open()来获取文件的句柄。 f就是文件的句柄 对文件的操作,也就是对句柄的操作。 encoding默认的是以系统默认的编码方式。 (windows默认gbk,mac和linux默认utf 8) 2 阅读全文
posted @ 2017-04-24 20:27 思否丶 阅读(180) 评论(0) 推荐(0)
摘要: 1 为什么使用函数 在没有接触函数时,有时候需要将一个功能多次写,如果需要修改其中一个变量,则需要把所有实现该功能的代码一处一处改。不利于代码维护,代码量大了,组织结构也会很不清晰。 所以总结不使用函数的确定: 代码冗余(重复代码多) 不利于维护(修改麻烦) 可读性差(组织结构不清晰) 函数的优点: 阅读全文
posted @ 2017-04-24 20:26 思否丶 阅读(226) 评论(0) 推荐(0)
摘要: 1 编程语言的类型 编程语言从不同的角度可以分为,解释型和编译型,静态语言和动态语言、强类型和弱类型。 解释型和编译型的区别 编译型是把文件一次性全部翻译成机器语言,并保存为二进制文件。 解释型是在程序运行时,一条一条地通过解释器来翻译成机器语言,也就是解释器翻译一条,计算机运行一条。 常用的编译型 阅读全文
posted @ 2017-04-24 20:26 思否丶 阅读(174) 评论(0) 推荐(0)
摘要: 补充 str转list list = list(str) list转str str = ''.join(list) tuple list相互转换 tuple = tuple(list) list = list(tuple) 阅读全文
posted @ 2017-04-24 20:25 思否丶 阅读(417) 评论(0) 推荐(0)
return