一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的属性 2.查看 类或对象 属性的方法 类名(对象名).__dict__:查出的是一个字典,key为属性名,value为属性值注意:类的方法,不能通过类名(对象名).__dict__['keys'] = value 的方式添加,否则会报不支持的错误:而对象可以通过此种方式添加. 先明确…
1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的属性 2.查看 类或对象 属性的方法 类名(对象名).__dict__:查出的是一个字典,key为属性名,value为属性值注意:类的方法,不能通过类名(对象名).__dict__['keys'] = value 的方式添加,否则会报不支持的错误:而对象可以通过此种方式添加. 先明确一个概念:经典类…
三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是一样一样的!但它是只读列表,没有更改的权限! dir() 把传入的数据类型的,所有方法以列表的形式返回.作用: 明确的表示 元组里存储的数据是不应该被修改的!!! list(tuple元组) 变成列表 tuple(list列表) 变成元组 集合 setlinux ={"","&q…
Python进阶(十五)----面向对象之~继承 一丶面向对象的三大特性:封装,继承,多态 二丶什么是继承 # 什么是继承 # b 继承 a ,b是a的子类 派生类 , a是b的超类 基类 父类 # b类或者b对象 能够使用 a类的所有属性和方法 # 为什么要有继承 由子类继承父类,从而完成了对子类功能的扩展 #第一: 子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法.换句话说,子类只希望继承父类的一部分方法,怎么办? #第二: 实际的对象千变万化,…
一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口. def age(n): if n ==1: #条件判定 return 10 #返回一个结果 else: return age(n-1)+2 #重复调用函数本身,系统会将运算的结果存放到栈,然后再依次的进行取值调用. print(age(5)) #打印结果 执行结果:18 2.优缺点…
操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定时间 切换过程中就涉及到状态的保存,状态的恢复,资源利用等问题. 线程和进程在多语言之间通用. 二.进程和线程的概念(面试会用到)   1.进程定义: 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成.我们编写的程序用来描述进程要完成哪些功能以及如何完成…
item系列 __slots__方法 __next__ 和 __iter__实现迭代器  析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式.  例如:对象名['key'] = value class Foo: def __init__(self,name): self.name = name def __getitem__(self, item): return self.__dict__[item] def __setitem__(self, key, value…
一.继承顺序: 多继承情况下,有两种方式:深度优先和广度优先 1.py3/py2 新式类的继承:在查找属性时遵循:广度优先 继承顺序是多条分支,按照从左往右的顺序,进行一步一步查找,一个分支走完会走另一个分支(若多条分支汇总一个头,除最后一条分支能走到头,其他的都走到次之位置停止,进行下一条分支的查找),直到查找到头为止. 可以利用 类名.__mro__ 的方法查看类之间的继承关系(经典类没有这种方法) class B(object): def func(self): print('----->…
一.isinstance 和 issubclass1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象.2.issubclass(sub, super)检查sub类是否是 super 类的派生类. 判断结果为布尔值:是返回True,不是返回False class Bar: #定义父类 pass class Foo(Bar): #定义子类 继承 Bar pass class A: #定义类 A pass obj=Foo() #实例化 a = A() #实例化 #isin…
一.前提介绍: 可以开辟作用域的只有类,函数,和模块            for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调用,就不再需要重复的编写代码. 模块就是py文件 使用的话就是:import 模块名 二.时间模块:time  1.python中有三种方式来表示时间:时间戳.元组(stuct_time),格式化的时间字符串. 时间戳:time.time() 从1970年开始以秒为单位计数的一个浮点型数字. 格式化…
一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了一种统一的迭代对象的方式,不依赖于索引 2.惰性计算 缺点: 1.无法获取迭代器的长度 2.一次性的,只能往后取值,不能往前退,不能像索引那样去取得某个位置的值 2.生成器:函数内带有yield关键字,那么这个函数执行的结果就是生成器 生成器的本质就是迭代器 def func(): n=0 whil…
socket编程 一.客户端/服务端架构 客户端/服务端架构 即C/S架构,包括:1.硬件C/S架构,2.软件C/S架构. 互联网中处处都是C/S架构,学习socket 就是为了完成C/S架构的开发. C/S架构: server端要: 1.力求一直提供服务 2.要绑定一个唯一的地址,让客户端能明确的找到服务端. 二.OSI七层 1.一个完整的计算机系统是由硬件.操作系统.应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了. 如果要跟别人一起玩,那就需要上网了.互联网的核心就是…
装饰器 一.定义 装饰器:顾名思义,就是对某个东西起到装饰修饰的功能. python中的装饰器,其本质上就是一个python函数,它可以让其他函数在不需要任何代码变动的前提下增加额外功能.通俗理解就是 函数 闭包 的实用. 二.语法及注意事项 1.书写规范 @ *** ***指装饰器的函数名 2.装饰器作为一个函数,他会把其下一行的主函数名作为变量,传递到自己的函数去调用.再重新赋值主函数. 3.装饰器必须放到被装饰的函数上边,并且独占一行:多个装饰器下 ,按照先下后上执行. 三.为什么要用装饰…
异常处理 一.错误和异常 程序中难免出现错误,而错误分为两种:语言异常和逻辑异常 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) for i in range(5) print(i) 2.逻辑错误 #类型错误 num = input(">>>") int(num) res = 1/0 res1 = 1+ 'str' 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下: python中有很多不同的异常种类,p…
一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个,用逗号隔开:冒号右边的为表达式,需要注意的是只能有一个表达式.由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收.  3.注意点:lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值.lambda 函数不能包含命令,包含…
变量 容器 变量名 标记 数据的作用 字符编码 二进制位 = bit1个二进制位是计算机里的最小表示单元 1个字节是计算机里最小的存储单位 8bits = 1Byte =1字节1024Bytes = 1KB =1024 字节1024KB = 1MB = 100万字节 =100万字符 =1兆1024MB = 1GB = 一部高清电影短片,1080p 20分钟,1024GB = 1TB 1024TB = 1PB ASCII 256 每一个字符占8位GB2312 1980 67xxGBK1.0 199…
一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是,对于一个可迭代对象,比如Python中的list.tuple.string.dictionary,set等,使用某种循环结构来遍历其中的元素,这种遍历就是迭代. #对列表进行遍历! l=['a','b','c','d','e'] #while循环的方式 i=0 while i < len(l):…
一.模块 1)定义: 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2)为何要用模块: 退出python解释器然后重新进入,那之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script. 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理.这时我们不仅仅可以把这些文件当做脚本去执行,还可以…
编译:把铭文代码执行前,先转成二进制,再执行,这个过程就叫编译. 编译型c,c++go特点:运行效率高依赖编译平台,linux 操作系统 跟CPU交互的接口,与windows不是完全一样不能跨平台,开发效率低 将语言全部编译转换成二进制,再执行. 解释型 解释器负责跟不同的平台沟通shellpythonphpruby #ruby on rails 特点:运行效率低,可以跨平台,开发效率高,解释型的语言,一般不需要关注硬件底层,学习成本低, 解释型的运行效率远低于编译型,一边翻译一边编译转换成二进…
names=["zhang"]names2=["jack","jie"]names.clear()print(names) #清空整个列表 names.extend(names2) #扩展将两个列表合并一个列表,原列表还在print(names) names.reverse() #反转names.sort() #排序,根据ASCII码 name = "aaa"id(name) 查看内存值*.strip() 删除字符串 边上的(…
字符串的格式化 在字符串中插入 %s ,作为占位符,后边儿再定义插入变量. 算术运算 % 取模   判断奇偶数 / 除法   有小于号 // 取整除  返回整数部分 逻辑运算 and or not 'str'.isdigit() 是判断一个字符串能否转换成数字 布尔运算 以下几种情况为假! []空列表 {}空字典 ()空元组,空集合 ''空字符串 0 位运算 == 二进制运算 列表的copy   浅copy与深copy的关系  用在内存占位的 id 理解! 字典 中的 fromkeys() 从序…
计算机中,有且仅有CPU具有执行权限,能够执行指令的只有CPU! 人在应用程序上输入的文字或文本,叫做明文! 在屏幕上输入或是输出的是字符,计算机保存的是 有字符编码的 二进制数. 变量赋值规则:例如:a=1 先在内存中开辟一块空间,存放数1,内存上会有一个相对应的id号,然后变量a指向这块内存区域和id号,python编译器有垃圾清除的功能,若开辟的这块内存区域一段时间内不调用,数据就会被清除,为其他的数据腾空间. python2 容错率高,自作聪明的完成转码拼接. python3 将字节类型…
名称空间与作用域 变量,函数 分成三种 #内置名称空间  内置函数, 系统函数内部自定义的. python查看内置函数,命令: import builtins dir(builtins) #全局名称空间  文件中 顶头写,没有任何缩进定义的函数或是变量. 定义之后,在整个文件的任何位置都可以用. #局部名称空间 定义之后,在局部环境内可以调用,例如在一个定义函数中定义的变量,只能在当前函数内部调用,往外全局或是其他函数均不能调用. 在外部,或是其他定义的函数调用的话,会报错! 内置和全局名称空间…
一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据流中接收) 1.函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error mes…
文件操作流程: 1.打开文件 open() 2.操作文件 read .writeread(n) n对应读指定个数的 2.x中读取的是字节! 3.x中读取的是字符!read 往外读取文件,是以光标位置开始的,每读取一个,光标就往后移动一位.readline() 默认是读取一行的内容.(第一行)readlines() 读取每一行的内容,组成一个列表.readable() 判断文件是否是可读的 对文件更改权限 mode 可以变更 默认是读操作:r,encoding 指定编码方式 写操作w encodi…
为何要用函数: 1.解决代码重用的问题 2.提高代码的可维护性,统一维护 3.程序的组织结构清晰,可读性强 定义函数 先定义后使用!!! def funcname(arg1,arg2,.....)  #funcname = 函数体 “描述信息” 函数体 return value 定义无参函数   无返回值 def foo() print("foo") 定义有参函数   接受外部传入的值,有return 返回一个值 def my_sum(x,y) return x+y 定义空函数   …
一.property 属性 特性 (装饰器是可调用对象,被装饰对象也是可调用对象)   1.在类内函数属性上添加一个@property,就会对函数属性进行伪装. import math class Circle: def __init__(self,radius): #圆的半径radius self.radius=radius @property def area(self): return math.pi * self.radius**2 #计算面积 @property def perimet…
SOCKET TCP协议: 有请求 有响应 称之为 tcp协议 是面向连接的协议 就是在收发数据之前 必须先要建立一个可靠的链接 三次握手 如:网站 UDP协议: 是一个非链接的协议 传输之前不需要键连接 如:qq,飞秋 socket概念: Socket又称套接字 向网络发出请求 或者应答网络请求 可以实现在一台计算机上不同的进程进行通信 二.socket使用 import socket socket.socket(family,type) 参数: family: AF_UNIX或者是AF_IN…
继承 1.什么是继承? 继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为基类或超类. - 在Python中,一个子类可以继承多个父类.(面试可能会问) - 在其它语言中,一个子类只能继承一个父类. 2.继承的作用? 减少代码的冗余. 3.如何实现继承? 1) 先确认谁是子类,谁是父类. 2) 在定义类子类时, 子类名(父类名). # 父类 class Father1: x = 1 pass class Father2: pass class Father3: pass # 子…
参考:实例属性和类属性 NOTE Python是动态语言,根据类创建的实例可以任意绑定属性. class Student(object): def __init__(self, name): self.name = name a = Student('Chen') a.score = 90 同时,也可以直接给类绑定一个属性: class Student(object): name = 'Student' 当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到. >>>…