|
|
|
|
|
|
11 2018 档案
python学习笔记(72) MySQL练习题
摘要:查询平均成绩大于60分的同学的学号和姓名和平均成绩: SELECT B.student_id, student.sname, B.ccc from (select studuent_id,avg(num) as ccc from score GROUP BY student_id HAVING av
阅读全文
python学习笔记(71) SQL语句数据行操作补充
摘要:增 insert into tb1(name,age) values('alex',12),('egg',18); insert into tb2(name,age) select name,age from tb1; 删 delete from tb1 where id>2 and name='a
阅读全文
python学习笔记(70) 外键和变种
摘要:和另外一张表产生关系 1.节省空间 2.约束,保持一致性 外键里有关联数据的不能删,没有关联的可以删 create table userinfo( uid int auto_increment priority key, name varchar(32), department_id int, co
阅读全文
python学习笔记(69) SQL数据类型
摘要:数据类型: 数字: int # singed有符号,unsigned 无符号 tinyint smallint bigint FLOAT # 不精准 DOUBLE # 从更长的位数开始不精准 decimal(10,5) # 精准(底层原理是字符串) 总位数和小数点后位数 字符串: char(10)
阅读全文
python学习笔记(68) SQL语句和自增
摘要:操作库: create databases db2; create databases db2 default charset utf-8; # 整个数据库以utf-8编码 show databases; drop databases db2; use db2; 操作表: show tables;
阅读全文
python学习笔记(67) MySQL配置
摘要:MySQL:用来管理文件的软件 服务端: -socket服务端 -本地文件操作 -解析指令(SQL语句) 客户端(各种各样) -socket客户端 -发送指令 -解析指令(SQL语句) DBMS: Data Base Manager System 常见数据库软件: 关系型数据库:sqllite,db
阅读全文
python学习笔记(65) IO模型
摘要:同步:提交一个任务之后要等待这个任务执行完毕 异步:只管提交任务,不等待这个任务执行完毕就可以做其他事情 阻塞:recv, recvfrom,accept 非阻塞 五种网络IO模型: blocking IO # 阻塞IO nonblocking IO # 非阻塞IO IO multiplexing
阅读全文
python学习笔记(64) 协程
摘要:协程本质上是一个线程,在一个线程上提高cpu的利用率 在cpython中很重要,因为多线程被弱化 能够在多个任务之间切换来节省IO时间 协程中任务之间的切换时间开销远远小于进程线程之间的切换 工作中一般4核进程(5)+线程(20)+协程(500) 进程和线程是操作系统调度(时间片)的,协程是gree
阅读全文
python学习笔记(63) 线程池
摘要:submit(fn,*args,**kwargs) # 异步提交任务 map(fn,iterable) # 拿不到返回值 shutdown() # 相当于pool.close()加pool.join() 操作 result() # 取得结果 add_done_callback() # 回调函数
阅读全文
python学习笔记(62) Treading模块
摘要:默认情况下主线程会等待子线程结束 t.deamon = Ture # 主线程结束,子线程随之结束 守护进程随着主进程代码的执行结束而结束 守护线程会在主线程结束以后等待其他子线程的结束才结束 主进程在执行完自己的代码以后(守护进程结束)不会立即结束,而是等待子进程结束以后,回收子进程资源 主线程必须
阅读全文
python学习笔记(61) 多线程
摘要:进程是资源分配的最小单位(数据隔离),线程是cpu调度的最小单位,每个进程至少有一个线程 能直接被cpu调度的是线程,轻型实体 共享进程资源,可以并发执行,全局变量在多个线程之间共享 用户级线程,内核级线程,混合实现 全局解释器锁 GIL:同一时刻只能有一个线程来访问cpu 同一进程的不同线程在不同
阅读全文
python学习笔记(60) 回调和爬虫
摘要:from multiprocessing import Poolimport requestsdef get(url): response = requests.get(url) if response.status_code == 200: return url,response.content.
阅读全文
python学习笔记(59) 进程池
摘要:p = Pool(5) # 一般cpu个数+1 p.map(funcname,iterable) # 默认异步在,自带close和join,返回列表 p.apply() # 同步调用,不常用,有返回值 p.apply_async() # 异步调用,和主进程完全异步,需要手动close和join 回调
阅读全文
python学习笔记(59) *进程之间的数据共享
摘要:m = Manager() # 很多数据都是进程不安全的(需要加锁) dic = m.dict({'count':100})
阅读全文
python学习笔记(58) *管道实现生产者-消费者模型
摘要:管道是进程数据不安全的(进程争抢数据),解决办法-加锁 队列=管道+锁
阅读全文
python学习笔记(57) 队列实现生产者-消费者模型
摘要:IPC(Inter-Process Communication) 队列: 队列是进程安全的:同时只能被一个进程取值 q = Queue(5) q.put() q.get() # 无值阻塞 q.get_nowait() # 无值报错 q.empty() # 如果其他进程正在添加项目,那么结果不准确 q
阅读全文
python学习笔记(56) 进程的同步控制
摘要:信号量: # 相当于多个钥匙的Lock form mutiprocessing import Semaphore sem = Semaphore(5) sem.acquire() sem.release() ######################################## 事件: f
阅读全文
python学习笔记(55) 守护进程和进程锁
摘要:Process类 方法: p.join() # 感知一个子进程的结束 p.start() p.is_alive() p.terminate() # 发出结束请求的瞬间不会立即结束 属性: p.name p.pid p.deamon = Ture # 在start之前 守护进程会随着主进程的代码执行完
阅读全文
python学习笔记(54) 多进程实现socket sever并发
摘要:import socketfrom multiprocessing import Processdef serve(conn): while True: ret = '你好'.encode('utf-8') conn.send(ret) msg = conn.recv(1024).decode('u
阅读全文
python学习笔记(53) 面向对象开启多线程
摘要:进程与进程之间数据是隔离的from multiprocessing import Processimport osclass MyProcess(Process): def __init__(self,args1,args2): super().__init__() self.args1 = arg
阅读全文
python学习笔记(52) 并发编程和join
摘要:操作系统的作用: 1、隐藏硬件接口 2、调度进程对资源的竞争 多道技术:针对单核,实现并发 空间上的复用、时间上的复用 遇到io切,占用cpu时间过长也切 进程是操作系统动态执行的基本单元 进程包括: 文本区域:存储处理器执行的代码 数据区域:存储变量和进程执行期间使用的动态分配的内存 堆栈:存储着
阅读全文
python学习笔记(51) socketsever和看源码
摘要:第一:整理多个类之间的继承关系 第二:列出每一个类的方法 第三:清楚了解所有self对象调用到底是谁的对象 第四:所有方法调用要退回到最子类开始寻找,逐级向上 SEVER: CLIENT1: CLIENT2:
阅读全文
python学习笔记(49) struct模块定制报头
摘要:网络上传输的数据都叫数据包,包里的数据都叫报文 报文里不只有数据,还有ip地址mac地址端口号等,存在报头里 自己定制报文:比如文件名字、大小、类型、路径等 head = {'filename':'test','filesize':409600} # 报头的长度 #先接收4个字节 #send(hea
阅读全文
python学习笔记(48) 解决黏包现象
摘要:先发送一下数据有多大,再按照数据长度接收数据 要在文件中配置一个配置项:每次recv的大小,默认缓冲区buffer = 4096 要发送大数据的时候,要明确告诉接收方要发送多大的数据,以便接收方准确接收到所有数据 多用在文件传输过程中 大文件的传输一定是按照字节读,每次读固定的字节 传输的过程中一边
阅读全文
python学习笔记(47) 黏包现象
摘要:本质原因:不知道要接收多大的数据 tcp会黏包但是不会丢包 #因为组合(发送端缓冲区(tcp特有)满)和拆分(多个包接收)数据包 udp不会黏包,但是会丢包 #sendto函数最大能发送数据的长度为:65535-ip头(20)-UDP头(8)=65507字节 超长会报错并丢包 tcp_sever:
阅读全文
python学习笔记(46) 基于udp协议的socket
摘要:udp的sever不需要监听也不需要建立连接 启动后只能被动等待客户端发消息过来 客户端发送消息的同时还自带地址信息 回复消息的时候不仅需要发送消息,还要把对方的地址填上 SEVER: CLIENT1: CLIENT2:
阅读全文
python学习笔记(45) 基于tcp协议的socket
摘要:socket(套接字)是一组接口,一个模块,是ip加port 基于文件类型的套接字家族:AF_UNIX 基于网络类型的套接字家族:AF_INET(ipv4) SEVER: CLIENT:
阅读全文
python学习笔记(44) 网络编程
摘要:统一入口:微信小程序和公众号 b/s架构是c/s架构的一种 网卡上有全球唯一的mac地址 4个点分十进制(ip v4协议) 4个8位2进制数: 0.0.0.0--255.255.255.255 通过ip地址找mac地址--arp协议 广播——单播 (广播风暴) 网关:局域网中的机器访问外部的机器需要
阅读全文
python学习笔记(43) logging模块
摘要:logging模块: 5种级别的日志记录模式 两种配置方式 #basicconfig、log对象(高可定制化) import logging logging.basicConfig(level = logging.DEBUG, #设置输出哪个级别的错误 format = '%(asctime)s %
阅读全文
python学习笔记(42) config模块
摘要:写入文件: import configparser config = configparser.ConfigParser() config['名字'] = {字典} with open ('config.ini','w') as f: config.white(f) 查找文件: import con
阅读全文
python学习笔记(41) 设置控制台颜色
摘要:设置开始 \033[显示方式;前景色;背景色m 前景色 背景色 颜色 30 40 黑色 31 41 红色 32 42 绿色 33 43 黄色 34 44 蓝色 35 45 紫红色 36 46 青蓝色 37 47 白色 显示方式 意义 0 默认设置 1 高亮 4 下划线 5 闪烁 7 反白 8 不可见
阅读全文
python学习笔记(40) hashlib模块
摘要:import hashlib #提供摘要算法的模块,MD5算法是最常用的 md5 = hashlib.md5() md5.update(b'alex3714') #只能摘要bytes类型的内容 print(md5.hexdigest()) 不管算法多么不同,摘要的功能始终不变——对相同的字符串使用同
阅读全文
python学习笔记(39) 扑克牌游戏
摘要:from collections import namedtupleimport jsonCard = namedtuple('Card',['rank','suit'])class FranchDeck: ranks = [str(n) for n in range(2,11)]+list('JK
阅读全文
python学习笔记(38) 类的内置方法(2)
摘要:item系列 __getitem__ __setitem__ __delitem__ class Foo: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def __getitem__(
阅读全文
python学习笔记(37) 类的内置方法(1)
摘要:内置的类方法和内置函数之间关系紧密 __str__ #一定return一个字符串 class A: def __str__(self): return "A's object" a = A() print(str(a)) #object里有一个__str__,一旦调用,返回调用这个方法的对象的内存地
阅读全文
python学习笔记(36) 计算器
摘要:要求: 首先得到一个字符串 去空格 找括号,且括号里没有其他括号 从左到右找到第一个乘除法 加减法 只剩一个数了,结束 ############################################
阅读全文
python学习笔记(35) 反射
摘要:isinstance() #isinstance(obj,cls)检查obj是否是cls的对象 issubclass() #issubclass(sub.super)检查sub是不是super的子类 反射:用字符串类型的名字去操作变量hasattr,getattr,setattr,delattr e
阅读全文
python学习笔记(34) staticmethod静态方法和classmethod类方法
摘要:@classmethod #把一个方法变成类的方法,不需要依托对象,可以直接被类调用,默认传入cls参数 def change_discount(cls,new_discount): cls.__discount = new_discount Goods.change_discount(0.5) #
阅读全文
python学习笔记(33) 封装和property属性方法
摘要:父类的私有属性不能被子类调用 会用到私有的场景: 1.隐藏起一个属性不想让类的外部调用 2.想保护一个属性不想让属性随意被改变 3.想保护这个属性不被子类继承 ######################################### property内置装饰器函数,只在面向对象中使用 把类
阅读全文
python学习笔记(32) 多态和封装
摘要:python天生支持多态 #动态强类型语言 list tuple 不崇尚根据继承所得来的相似 如果两个类刚好相似,不产生父类的子类的兄弟关系,而是鸭子类型 鸭子类型:不依赖父类的情况实现两个相似的类中的同名方法 list tuple这种相似,是自己写代码的时候约束的,而不是通过父类约束的 优点:松耦
阅读全文
python学习笔记(31) 接口类和抽象类
摘要:from abc import abstractmethod.ABCmeta class Payment(mataclass = ABCmeta): #元类 默认的元类 type @abstractmethod def pay(self,money):pass 接口类或者抽象类都是为了规范子类,希望
阅读全文
python学习笔记(30) 多继承
摘要:多继承中子类调用方法默认就近原则: 经典类中 深度优先 新式类中 广度优先 钻石图 D-B-C-A py2.7中新式类和经典类共存,新式类要继承object py3只有新式类,默认继承object mro方法只在新式类中有,super只在py3中存在 D.mro super的本质:不是直接找父类,而
阅读全文
python学习笔记(29) 继承
摘要:class A: pass #父类,基类,超类 class B: pass #父类 class A_son(A): pass #子类,派生类 class AB_son(A,B):pass #一个类可以被多个类继承 #一个类可以继承多个父类(python特有) A_son.__bases__ #cla
阅读全文
python学习笔记(28) 类的命名空间和组合
摘要:#类对象指针 #类的静态变量储存在类的命名空间 #对于不可变数据类型来说,类变量最好用类名来操作(对象修改独立于类) #对于可变数据类型来说,对象名的修改是共享的,重新赋值是独立的 当对象调用类里的方法的时候,这个方法就是绑定方法 对象只能找自身和类空间里的变量,不能找全局变量 导入包的过程,就是类
阅读全文
python学习笔记(27) 面向对象
摘要:class Person: country = 'China' #类属性 静态属性 可被类和对象调用 可用Person.country = xx修改 对于不可变类型,对象只能改自己的,不能改类的;可变数据类型都能['English']与'English' def __init__(self,*arg
阅读全文
python学习笔记(26) 员工信息表
摘要:user: 1,aaa,11,mi1,miboy2,bbb,22,mi2,miboy3,ccc,33,mi3,miboy4,ddd,44,mi4,miboy column_dic = {'id':0,'name':1,'age':2,'phone':3,'job':4}def filter_hand
阅读全文
python学习笔记(25) 堆栈和递归实现三级菜单
摘要:def threeLM(dic): while True: for k in dic:print(k) key = input('请输入:').strip() if key == 'b' or key == 'q': return key elif key in dic.keys() and dic
阅读全文
python学习笔记(24) 异常处理
摘要:try: except ValueError: except IndexError: #支持多分支 except Exception: #万能异常 后面可以跟else: #没有异常执行 或者finally: #无论是否异常都执行,如果有return会先执行finally再return except
阅读全文
python学习笔记(23) 模块范例
摘要:bin/start.py import os import sys sys.path.append(os.path.dirname(os.getcwd())) #将本目录添加进path from core import main if __name__ == '__main__': core.mai
阅读全文
python学习笔记(22) 模块
摘要:加载模块: 1.先从sys.modules里查看是否已导入 2.如果没有导入,就依据sys.path路径寻找模块 3.找到模块就导入 4.创建这个模块的命名空间 5.执行文件,把文件中的名字放到命名空间里 执行demo.read会优先查找demo里的变量 import time as t #给模块起
阅读全文
python学习笔记(21) 常用模块--序列化模块
摘要:序列化——从其他数据类型转向一个字符串数据类型 反序列化——字符串到其他数据类型 序列——字符串 json #五星 pickle #四星 shelve #py3新增 json #通用的序列化格式 #只有很少的一部分数据类型能通过json转化成字符串 pickle #序列化和反序列化需要相同的环境 #
阅读全文
python学习笔记(20) 常用模块--sys模块
摘要:sys.argv #命令行参数list,第一个元素是程序本身路径,后面跟传的参数,只能在命令行运行 sys.platform #返回系统平台名称 sys.version #返回python解释器的版本信息 sys.exit(n) #推出程序,正常退出时exit(0),错误退出exit(1) sys.
阅读全文
python学习笔记(19) 常用模块--OS模块
摘要:os.getcwd() #获取当前目录 os.chdir() #打开目录,记得加r os.curdir #返回当前目录os.chdir('.') os.pardir #获取当前目录的父目录字符串名 ('..') os.makedirs() os.removedirs() #删除多个空目录 os.mk
阅读全文
python学习笔记(18) 常用模块--random模块
摘要:random.random() #大于0且小于1之间的小数 random.uniform(1,3) #大于0小于3的小数 random.randint(1,5) #大于1且小于等于5的整数 random.randrange(1,10,2) #大于1小于10的奇数 random.choice([1,'
阅读全文
python学习笔记(17) 常用模块--time模块
摘要:time模块 时间戳时间 #float格式,给计算机看 格式化时间 #字符串格式,用于给人看 结构化时间 #元组,计算用 time.time() #时间戳 time.strftime('%Y-%m-%d %H:%M:%S') #stringformat格式化时间 time.localtime() #
阅读全文
python学习笔记(16) 常用模块--collections模块
摘要:#################################################### collections模块 namedtuple #可命名元组 #Point = namedtuple('point',['x','y']) #p = point(1,2) #print(p.x
阅读全文
python学习笔记(15) 常用模块--re模块
摘要:re.findall #返回所有满足条件的结果放在列表里,分组优先,没有group re.search #从前往后找到一个就返回,且返回一个对象,需要调用group才能拿到结果 #如果没找到,返回None,调用group会报错 #if ret: print(ret.group()) re.match
阅读全文
python学习笔记(14) 正则表达式实例
摘要:李杰和李莲英和李二棍子 [^和]+ 李[^和]* 李[杰连英二棍子] ################################ 匹配15或18位身份证,不能以0开头,18位可以以x结尾 ^[1-9]\d{14}(\d{2}[0-9x])?$ ^([1-9]\d{16}[1-9z] | [1-
阅读全文
python学习笔记(13) 正则表达式
摘要:. #换行符外任意字符 \w #字母数字下划线 word \s #任意空白符 space \d #任意数字 digit \W #非word \S #非space \D #非digit \n #匹配一个换行符 \t #匹配一个制表符tab \b #匹配单词结尾 g/b ^ #匹配字符串开头 ^g $
阅读全文
|
|