python基础笔记
文章平均质量分 60
大神,起风了
以前等风来,后来起风了
展开
-
基础知识点(已更新)
Day11、编程语言总体分为机器语言、汇编语言、高级语言。机器语言属于低级语言,用二进制代码0和1描述的指令汇编语言的实质和机器语言是相同的,只不过将每一步具体的操作用命令的形式写出来,指令采用了英文缩写的标识符,更容易识别和记忆。高级语言将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。...原创 2018-11-22 11:20:36 · 509 阅读 · 0 评论 -
python异常处理
文章目录try excepttry except Exception:try except finally自定义错误类型程序运行时出现异常,如果不处理会导致程序运行终止。如果不想让程序因异常而终止则需要对异常进行处理。#常见的异常类型有:ValueError: 传入值不正确NameError: 没有被赋值的变量,not definedKeyError: 访问字典里不存在的Key值Ind...原创 2019-01-02 09:18:09 · 315 阅读 · 0 评论 -
并发编程——守护进程daemon,互斥锁
文章目录守护进程 daemon互斥锁 Lock守护进程 daemon主进程设置子进程为守护进程之后,守护进程会在主进程执行结束后终止,守护进程内无法开启子进程from multiprocessing import Processimport timedef run(name): # 定义了run函数 print('%s is running' % name) ti...原创 2019-01-18 10:20:34 · 248 阅读 · 0 评论 -
并发编程——生产者消费者模型
生产者指的是生产数据的任务,消费者指的是处理数据的任务。在并发编程中,如果生产者比消费者速度快,那生产者需要等消费者处理完才能生产,反之,消费者需等生产者生产数据之后才能处理。生产者消费者模型指的是生产者和消费者不直接通讯,通过一个容器(队列)来通讯,生产者生产得数据放进容器,消费者处理数据直接从容易里取,解决生产者和消费之间的强耦合问题(耦合关系是指某两个事物之间如果存在一种相互作用、相互影...原创 2019-01-18 11:56:54 · 660 阅读 · 0 评论 -
并发编程——线程与进程,开启线程的两种方式,多线程与多进程
文章目录1 线程和进程2 开启线程的两种方式threading模块,与进程方法类似2.1 方式一:2.2 方式二:3 多线程与多进程的区别3.1 进程开销大于线程3.2 同一进程内的线程共享数据,进程之间数据隔离3.3 同一进程内线程pid一样,进程与进程的pid不一样4 Thread对象其他属性或方法Thread 对象的方法:threading模块提供的方法:1 线程和进程1、线程是一个...原创 2019-01-18 16:09:13 · 640 阅读 · 0 评论 -
并发编程——守护线程,互斥锁,死锁,递归锁,信号量,Event,定时器
主要来看下守护线程的打印结果和守护进程的区别文章目录1 守护线程1.1 没有非守护线程的情况:1.2有非守护线程的存在:1.3 与守护进程相比:2 互斥锁3死锁4 递归锁 RLock5 信号量 Semaphore6 Event7 定时器 Timer1 守护线程1.1 没有非守护线程的情况:from threading import Threadimport timedef test1...原创 2019-01-18 18:11:17 · 450 阅读 · 0 评论 -
并发编程——线程queue
文章目录1 线程queue1.1 先进先出 Queue1.2 后进先出 LifoQueue1.3 优先级队列 PriorityQueue1 线程queue1.1 先进先出 Queue# 看下类Queue的注释class Queue: '''Create a queue object with a given maximum size. If maxsize is <...原创 2019-01-18 23:14:39 · 207 阅读 · 0 评论 -
并发编程——测试socket单线程下使用协程(gevent模块)实现并发效果
gevent模块可以在单线程内启动协程,并且检测到阻塞会自动切换到其他协程,提升效率测试下服务端单线程内利用协程,客户端开启500个线程连接的效果。服务端from gevent import monkey, spawn # gevent模块下,spawn提交协程monkey.patch_all() # 必须放到socket模块之前,放在文件最上,检测识别遇到的阻塞fro...原创 2019-01-19 10:38:30 · 323 阅读 · 0 评论 -
并发编程——socketserver模块实现简单的并发的套接字通信
服务端import socketserver# 总共三步:#1、自定义功能类,必须继承 socketserver.BaseRequestHandler,必须有方法handleclass MyServer(socketserver.BaseRequestHandler): def handle(self): while True: try...原创 2019-01-19 19:06:54 · 331 阅读 · 0 评论 -
并发编程—进程与程序,并发与并行,开启进程的两种方式,多进程实现简单的并发通信
文章目录进程与程序的区别多道技术并发与并行的区别开启进程的两种方式方式一:定义好需执行的函数,实例化Process对象时调用函数方法二:自定义类,继承Process,自定义方法,实例化对象调用方法进程与程序的区别进程指的是正在执行的一个过程,是对正在进行程序的抽象概念。程序仅仅是一堆代码而已。多道技术多道指的是多个程序,多道技术解决的是多个程序共用一个cpu的调度问题。一个cpu一次只能...原创 2019-01-14 21:15:10 · 803 阅读 · 1 评论 -
并发进程——Process对象的方法属性
文章目录join方法进程对象的其他方法一:terminate与is_alive进程对象的其他属性:name与pidjoin方法让主进程检测子进程是否运行完毕,在子进程执行完毕后才继续执行,否则一直在原地阻塞def test(name): print('%s is running' % name) time.sleep(3) print('done')if __na...原创 2019-01-14 22:20:31 · 1620 阅读 · 1 评论 -
python基础——函数参数详解
文章目录形参和实参位置参数默认参数特点默认参数必须指向不变对象关键参数非固定参数 `*args` ` **kwargs`*args**kwargs特点限制命名关键字参数形参和实参形参只有在调用时才分配内存,调用结束时即刻释放所分配的内存单元,因此形参只在函数内部有效。实参可以是常量,变量,表达式,函数等,必须有确定的值。位置参数调用函数时,依照位次赋值。def func(x, y): ...原创 2019-02-26 10:40:01 · 413 阅读 · 0 评论 -
函数——全局变量,局部变量,嵌套函数,作用域,闭包
文章目录全局变量,局部变量嵌套函数嵌套函数变量查找几种情况:全局变量,局部变量函数内部定义的变量为局部变量,程序中函数外部定义的为全局变量, 同名时,id不同。 全局变量作用于整个程序 局部变量只在定义的函数内起作用 局部变量可以调用全局变量,但不能修改全局变量,如果修改,函数内部最上方加 global,先声明再修改,不然报错。global不建议用。 全局变量不能调用局部变量 局...原创 2019-02-26 14:33:06 · 659 阅读 · 0 评论 -
函数——匿名函数,列表生成式
文章目录匿名函数列表生成式匿名函数lambda x:x**2关键字lambda表示匿名函数,冒号前面的x表示函数参数。匿名函数。用法: 把匿名函数赋值给一个变量,再利用变量来调用该函数 配合其他函数使用func=lambda x:x**2print(func(2))# 4l=list(map(lambda x:x*2,range(5)))# map(func, *...原创 2019-02-26 16:53:17 · 844 阅读 · 0 评论 -
设置数字和字符串的格式(已更新)
文章目录1、%占位符2、string中的Template的subtitute方法3、format方法更酷炫的用法结合格式化类型符插一句:数字format格式化:字符串也有类似数字的format用法如果字符串有一部分是固定的,少部分需要动态改变,就把固定的额部分做成模板,动态的部分预留出位置,然后往里传参数替换。几种方法都是占位置的方法和替换的方法的区别。1、%占位符使用字符串格式化操作符 ...原创 2019-03-06 22:38:57 · 2305 阅读 · 0 评论 -
python元类
文章目录产生类的两种方式class定义类调用元类type产生自定义元类自定义元类控制类的创建自定义元类控制类的实例化示例我们class定义一个类,实例化产生对象:class People: passp1 = People()# python 一切皆对象,p1是People实例化的,那People这个类也是对象,People是哪个类产生的?print(type(p1))#...原创 2019-01-01 23:01:26 · 217 阅读 · 0 评论 -
python反射
文章目录1、 hasattr(对象,字符串形式的属性名)两个参数,返回结果True or False. 判断对象中是否有此属性2、getattr(对象,字符串形式的属性,default =None),拿到属性3、setattr(对象,属性名,属性值)4、delattr(对象,字符串形式的属性名)简单的利用反射操作属性python 面向对象的反射值得是通过字符串的形式操作对象的相关属性。主要有四个...原创 2019-01-01 18:58:28 · 270 阅读 · 0 评论 -
列表和元组(更新后)
Day2.1、变量的创建与id2、浮点数的精确度3、列表列表的操作列表枚举:enumerate判断输入是否为数字1、变量的创建与id当我们定义了一个变量name = ‘oldboy’的时候,在内存中其实是程序开辟了一块内存空间,将‘oldboy’存储进去,再让变量名name指向‘oldboy’所在的内存地址。当我执行下面这段代码的时候,程序是怎么处理的呢?name1 = ‘oldboy’...原创 2019-07-01 22:19:54 · 431 阅读 · 0 评论 -
小点补充:print 函数输出字符串
刚开始学习python时,我们都会朝圣般的用 print 函数打印出 “hello,world”,那么我们接触到的最早的 print 函数,输出结果时的格式,字符串可以用比较运算符比较,不知道大家有么有注意到。1、字符串的简单操作1.1在用 print 函数输出参数值 a,b,c,d 用 sep=’'print('a','b','c','d') #逗号输出空格 #结果:a b c dp...原创 2018-11-23 09:58:20 · 3981 阅读 · 1 评论 -
列表补充:切片和copy,图解:赋值创建列表的id地址和区别
1、步长为负值时,切片从右往左切,开始索引要大于结束索引n=[1,1,2,3,4,6,6,6,7,8]print(n[::-2])print(n[0:7:-2])print(n[7:0:-2])[8, 6, 6, 3, 1][][6, 6, 3, 1]2.赋值新建变量a=1b=aprint(id(a),id(b))140731834544976 140731834544...原创 2018-11-24 21:55:28 · 550 阅读 · 1 评论 -
字符串常用方法(已更新)
文章目录字符串的基本操作1.大小写互换:swapcase2.只有首字母大写:capitalize3.大小写统一小写:casefold4.居中显示:==center==5.从一个范围内统计某str出现的次数:count6.判断是否以某str结尾: endswith7.查找返回索引值:find,找不到返回-18.字符串格式化:==format==9.返回索引:==index==,找不到报错10.Pyt...原创 2018-11-25 12:10:25 · 344 阅读 · 0 评论 -
字典 集合以及相关转换(已更新)
文章目录字典字典的特性和常见操作字典的常见操作:1、查找,dic.keys()、dic.values、dic['key'] 、dic.items和dic.get('key')2、新增:赋值新增:dic['key'] = 'value和dic.setdefault3、删除dic.pop() 、del dic()、dic.clear()4、字典合并,update5、循环集合集合的特性和常见操作集合的常...原创 2018-12-03 16:41:32 · 801 阅读 · 0 评论 -
python面向对象基础
文章目录面向对象的概念和面向过程的区别和应用场景面向过程面向对象相关概念和语法类,对象,实例化语法类的创建和对象实例化补充1、类在定义阶段便会执行,因而会产生新的名称空间存放变量名和函数名,可以通过类名+.__dict__查看(字典格式)。类的属性增删改查__init__方法为对象产生独有属性对象的属性补充1、类的数据属性是所有对象共有的,id都一样2、类的函数属性是绑定给对象用的(bound m...原创 2018-12-29 15:25:04 · 520 阅读 · 0 评论 -
windows系统基于tcp协议用socket执行命令,ftp上传下载文件
文章目录服务端客户端服务端import socketimport subprocessphone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 套接字类型,TCP协议phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 重用当前地址,有时候出现...原创 2019-01-03 21:34:39 · 1615 阅读 · 5 评论 -
面向对象三大特性之一:继承
文章目录1、继承的简单语法2、属性查找2.1 派生2.2 继承的查找原理2.2.1新式类和经典类2.2.2 广度优先3、子类调用父类的方法4、组合重用1、继承的简单语法继承指的是类与类之间的关系,继承的功能之一就是用来解决代码重用问题继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可以成为基类或超类,新建的类称为派生类或子类class People: ...原创 2018-12-29 20:04:00 · 323 阅读 · 0 评论 -
在python中实现抽象类
抽象类就是从一堆类中抽取相似的功能创建一个类作为父类,子类继承父类,子类产生的对象在调用的时候,用法一样,方便使用。抽象类的定义的函数没有实现功能,只是规定了函数名,而且抽象类没法实例化。class Animals: def run(self): passclass People(Animals): def run(self): pass...原创 2018-12-29 20:48:27 · 779 阅读 · 0 评论 -
面向对象之多态
多态指的是一类事物有多种形态,多态性是指在不考虑实例类型的情况下使用实例class Animals: def run(self): print('running')class Dog(Animals): def run(self): print('dog is running')class Pig(Animals): def r...原创 2018-12-30 09:45:27 · 115 阅读 · 0 评论 -
面向对象之封装
在定义类时,在类内部函数属性和数据属性之前加’__’(两个下划线),再和以前一样去访问属性就会报错。class Student: __school = '北大' def __init__(self, name, age): self.__name = name self.__age = age def __run(self): ...原创 2018-12-30 19:21:32 · 146 阅读 · 0 评论 -
装饰方法@property
Python内置的@property装饰器就是负责把一个方法变成属性调用的比如说我们隐藏了数据然后提供了一个查看属性的接口,当然接口函数中可以设置条件,这里简化下:class Students: def __init__(self, name, score): self.__name = name self.__score = score # ...原创 2018-12-30 20:46:56 · 150 阅读 · 0 评论 -
绑定方法和非绑定方法,classmethod、staticmethod
文章目录1.1、绑定方法绑定到对象的方法绑定到类的方法 classmethod1.2、非绑定方法 staticmethod1.1、绑定方法绑定方法分为绑定到对象的方法,和绑定到类的方法。绑定方法指的是类中定义的方法绑定给谁,谁调用,调用的时候自身作为第一个参数自动传值。绑定到对象的方法class Student: def __init__(self, name, age): ...原创 2018-12-30 21:50:26 · 150 阅读 · 0 评论 -
__new__ 与 __init__
_new_ 与 _init_在定义类时,通常写__init__方法,不写__new__方法。实例化对象时会自动调用内置的__new__方法,返回一个空对象,然后调用__init__给实例化对象加独有属性。class People: passprint(dir(People)) # 列表形式,其中有'__new__',['__class__', '__delattr__', '_...原创 2019-01-05 10:20:09 · 935 阅读 · 0 评论 -
文件读写处理
文件模式区别: r+ ,文件不存在会报错,写入时从当前位置写入。通过seek函数可更改文件指针位置。 w+, 文件不存在会创建,文件存在会清空并写入新内容 a+, 文件不存在会创建,文件存在写入时会添加到文件最后,文件指针自动跳转到末尾,如果要使用read方法读取,需要seek改变文件指针位置。 rb, 以二进制形式读,bytes类型,一般用于非文本文件如图片等 wb...原创 2019-03-04 21:09:35 · 157 阅读 · 0 评论