Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接操控硬件 优点:程序员独享整个资源    缺点:浪费资源 第二代计算机:晶体管和批处理系统 优点:计算机资源利用 缺点:程序员共享资源,出现问题,找不出问题,影响开发效率 第三代计算机:集成电路芯片和多道程序设计 多道程序:cpu执行程序的过程中遇到I/O,不会原地等待,cpu会去执行其他命令,等到…
一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 二.创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类" 和 "对象" 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象…
面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 面向对象类成员 一.变量 变量包括:类变量和实例变量,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 类变量:属于类 实例变量:属于实例 class Role(object): #类变量,在内存…
面向对象 介绍(特性(class.object--->封装.继承,多态)).--->世界万物,皆可分类:世界万物,皆可对象 只要是对象,就肯定属于某种品类:只要是对象,就肯定有属性 你是上帝  地球---> 山川,河流,大海,森林 --->飞禽-飞,吃虫子,下蛋,(几百种鸟(布谷鸟-飞,吃虫子,下蛋,唱歌:乌鸦-飞,吃虫子,下蛋....)),走兽(狮子-百兽之王:老虎-森林之王) 臭鱼烂虾---->人-思考,说话,吃喝拉撒睡 语法(属性.方法.构造函数.析构函数(在实例释放.…
面向对象是指用类来描述一个对象(实例),用类来建立实例与实例的关联关系 对象 : object     实例 : instance 1 类 1.1 什么是类 类是用来描述对象的工具,用类可以创建一个或多个同类对象.类 : class 1.2 类的作用 用来描述对象 用来创建具有相同属性的同类对象 1.3 类的创建 class 类名(继承列表): ””” 类文档字符串 “““ 实例方法(类内的函数methed)定义 类变量定义 类方法(@classmethod)定义 静态方法(@staticmet…
装饰器 本质是函数,装饰其他函数,为其他函数添加附加功能 原则: 1不修改原函数的源代码 2不修改原函数的调用方式 知识储备: 1函数即变量 使用门牌号的例子说明函数,调用方式与变量一致 2高阶函数 bar() bar(内存地址门牌号,指针) 例子:在不修改源码的情况下附加功能,把一个函数当做实参传给另一个函数,返回值中包含函数名 3嵌套函数 在函数体中定义新函数,注意调用方式与作用域 利用高阶函数和嵌套函数实现装饰器的效果 几种情况,从简单到复杂: 被装饰函数无参数 被装饰函数多参数 被装饰函…
一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能.举个例子,你要做饭,可以用电磁炉,也可以用煤气灶.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程. 提到面向对象,就不得不提到另一种编程思想,面向过程:什么是面向过程呢,面向过程的思想是把一个项目.一件事情按照一定的顺…
本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.   引言 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做(人狗大战)的游戏,你就思考啊,人狗作战,那么至少需要两个角色,一个是人,一个是狗,且人和狗都有不同的技能,比如人拿棍子打狗,狗可以进行咬人等等,怎么描述这种不同角色和他们各自的功能呢?   你搜罗了自己掌握的所有技能,写下了下面的代码来描述这两个角色 def person(name,age,sex,job): data =…
一.类和实例 1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 2.对象:通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法. 3.类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 4.实例变量:定义在方法中的变量,只作用于当前实例的类. 5.对“类”和“对象”的使用: 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能. 对象则是…
class Foo: #类中的函数 def bar(self): #功能阐述 print('Bar') pass def hello(self,name): print('i am %s' %name) #根据Foo创建对象obj obj=Foo() #在创建对象的时候,记得后面加个括号 #注意,按照python的通用规则,Class用驼峰表示(HelloWorld) #而其他的obj等,都用'_'隔开(this_is_obj) #类中函数第一个方法必须是self,指代本类的一个东西,类中定义的…
下面是初步总结的Python的面向对象的参数定义,后面会逐渐完善面向对象的相关知识.…
说起高级其实也就是些基础的东西,但是活用和熟用肯定会大幅度提升代码质量 首先要记录的是面向对象的灵活性,及如何去控制其灵活性,她允许你在实例中新增属性和方法,允许你给类新增属性和方法,也支持在定义类时就声明方法,正因为如此,才让他变得很灵活,但是很多时候不是随心所欲,如果过于灵活,那任何一个子类都可以对基类去修修改改,显然是不合适的,那么我们就需要去控制这种灵活度,于是slots函数出现了. __slots__函数 slots函数限定了当前类中的属性值,一旦出现了slots函数,那么该类的实例只…
queue (队列) 队列是为线程安全使用的. 1.先入先出 import queue #测试定义类传入队列 class Foo(object): def __init__(self,n): self.n = n ) ) ),timeout=) # 超时时间后,抛出队列full异常 , , ],timeout=) print(new.full()) #判断队列是否满 True #) #队列已满,再放报错 print(new.qsize()) # 查看当前队列长度 print(new.get())…
__slots__特殊变量的使用: 由于Python是动态语言,允许先编写类,然后在创建实例的时候添加属性或者方法:而__slots__特殊变量就是,限制往类里添加属性的: 在创建类的时候,使用__slots__ =('name','age'),就是在创建实例时候,只允许添加绑定name和age两个属性:注意!__slots__只对当前类有效,不会作用于子类: @property装饰器:为了实现数据的封装,不把属性暴露在外面,所以如果想访问实例内部属性的话,就需要使用get和set方法,但是这样…
1 模块 使用import 语句从外部导入模块信息,python提供了很大内置模块.当你导入模块时,你会发现其所在目录中,除源代码文件外,还新建了一个名为__pycache__的子目录(在较旧的Python版本中,是扩展名为.pyc 的文件).这个目录包含处理后的文件,Python能够更高效地处理它们.以后再导入这个模块时,如果.py文件未发生变化,Python将导入处理后的文件,否则将重新生成处理后的文件.删除目录__pycache__不会有任何害处,因为必要时会自动创建它. 2 包 为组织模…
4.4 序列 序列是具有索引和切片能力的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列.序列索引功能演示: tuple=("apple","banana","grape","orange") list=["apple","banana","grape","orange"] str…
python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分为这三个部分来讲解的 简单,功能性,一般不修改直接调用查看结果 实现简单功能,定义后使用 实现比较复杂功能,常常是一些我们常见类的特性的实现原理,具体分为 实例成为可迭代对象(列表的特性) 实例索引取值(列表的特性) 上下文管理(文件的特性)等 简单功能 这部分包括上面列出的前两个点 不需要修改直接…
1.类定义:Python3中,如果新建的类没有继承任何其他类,默认继承基础类object.Python2中如果没有显式继承object类就是经典类,而显式继承了object类就是新式类,Python2推荐使用新式类. 2.类变量:类变量就是直接在类中,但是在方法外定义的变量.类变量是所有该类的实例所共有的,且类的每个实例都可以修改类变量. 3.成员变量:成员变量就是在定义时加了self前缀的变量,一般在__init__方法就定义了,成员变量会跟着实例“一起走”. 4.类的继承:直接在类后括号里加…
由于之前有一定基础,所以python中的类的概接受的比较快,与其他语言一样, python也是通过类来进行事务的抽象,一切皆对象,要不然怎么说程序员不缺对象呢. 言归正传,python中类的声明是class 类名(父类):的形式定义,在类中self表示指向自身,__init__方法表示的是构造方法,也就是初始化数据所用的方法,与其他语言一样,同样构造方法参数的不确定性也决定了类的其他强大特性,比如多态,继承. python中在子类中也允许重写父类方法,且python子类中允许为父类添加属性值.比…
1,读取文件: f=open('目录','读写模式',encoding='gbk,error='egiong') 后三项可以不写但是默认是' r'读模式:open函数打开的文件对象会自动加上read()方法: f.read()读出刚刚打开的文件:最后一定要记得close()函数:否则会出现不可估计的后果. 读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 .如:'rb','wb','r+b'等等…
一:正则表达式的符号与方法 常用符号: .:匹配任何一个字符,换行符除外(所以,多行字符串中的匹配要特殊处理,见下面实例) *:匹配前一个字符0次或多次 +:匹配前一个字符1次或多次 ?:匹配前一个字符0次或1次 {n,m}:匹配前一个字符n次~m次 ():小括号内容作为结果返回 []:匹配[]内任一元素 .*:贪心匹配,匹配任何一个字符0次或多次 .*?:非贪心匹配 (.*?):把括号内的匹配内容作为结果返回 \w:匹配包括下划线的任何单词字符(即不是特殊符号的字符,符号字符是!@#?之类),…
一.函数返回多个值 1.函数如果返回多个值的话,它会把这几个值放到一个元组里面2.函数如果返回多个值的话,也可以用多个变量来接收 def say(): num1 = num2 = num3 = return num1,num2,num3 print(say()) #函数如果返回多个值的话,它会把这几个值放到一个元组里面,(, , ) res1,res2,res3 = say()#返回多个值时,可以用多个变量接收 print(res1) # print(res2) # print(res3) #…
理解 在定义功能时功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么就将不确定的部分暴露出去,由该类的子类完成. 举例 需求 获取一段程序的运行时间 代码 abstract class GetTimeTemplate { public final void getTime() { //使用final修饰,防止被复写 long start = System.currentTimeMillis(); runCode(); //将代码以函数的形式封装 long end…
交换两个变量的值 a = 2 b = 1 b = 1 a = 2 #方式一: b,a = a,b #交换两个变量的值 print(a,b) #方式二: a = a + b #3 b = a - b #2 a = a - b #3-2 #列表推导式 nums = [0,1,3,4,5,6,7] new_nums = [x-1 for x in nums] print(new_nums) return多个值 函数如果有多个return值,那么会把这几个return的值都放到一个元组里面,然后返回 d…
Python学习笔记(九): 装饰器(函数) 内置函数 1. 装饰器 1. 作用域 2. 高阶函数 3. 闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). def outer(): x = 10 def inner(): # 条件一:inner是内部函数 print(x) # 条件二:外部环境的一个变量 return inner() # 结论:内部函数inner就是一个闭包 # 两种调用inner的方法 outer()…
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96.html 为什么用Python开发桌面应用程序_yu000hong_新浪博客http://blog.sina.com.cn/s/blog_48a45b950100zhwx.html 鱼C工作室-免费Python教学视频,论坛  里面有GUI开发的免费视频http://bbs.fishc.com/f…
人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结构与算法week7 GUI编程week8 网络编程与并发编程(操作系统)week9 数据库入门week10 常用数据库week11 LINUX操作系统week12 - week16 前端学习week17 网络框架之入门week18 网络框架之django框架week19 网络框架之flask框架we…
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环境的搭建过程,以及Hello World的实现. 第二篇 VS2013中Python学习笔记[基础入门] 我简单学习使用了Python的几个基础的知识点. 第一个Web页面 第一步:首先打开VS2013开发工具 ,新建项目,选择Django Project模版. 修改项目名称,可以查看到项目的文件结…
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho…
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列表.字典.主文件判断.对象 Python学习笔记——基础篇1[第三周]——set集合 Python学习笔记——基础篇2[第三周]——计数器.有序字典.元组.单(双)向队列.深浅拷贝.函数.装饰器 Python学习笔记——基础篇[第四周]——迭代器&生成器.装饰器.递归.算法.正则表达式 Python…