
python基础
JoseThree
这个作者很懒,什么都没留下…
展开
-
Django模板技术
Django模板技术urls配置templates/indexDTL语法urls配置from django.template import loaderfrom django.http import JsonResponse, HttpRequest, HttpResponsefrom django.shortcuts import renderdef index(request)...转载 2019-07-22 19:11:18 · 253 阅读 · 0 评论 -
ThreadingTCPServer
测试代码:import threadingfrom socketserver import StreamRequestHandler, ThreadingTCPServerclass A(StreamRequestHandler): clients = {} def setup(self): super().setup() self.cl...原创 2019-06-17 22:11:56 · 1018 阅读 · 0 评论 -
udp客户端,过时删除
测试代码:import socketimport threadingimport datetimeclass A: def __init__(self, ip='127.0.0.1', port=9999, interval=10): self.addr = ip, port self.sock = socket.socket(type=socke...原创 2019-06-17 21:37:14 · 185 阅读 · 0 评论 -
logging模块
logging模块import loggingimport sysa = logging.getLogger('a') #get一个handlerprint(a.level) #初始的等级是0a.level = 20print(a.handlers)...原创 2019-06-11 22:28:43 · 114 阅读 · 0 评论 -
进程池和线程池的使用
进程池和线程池的使用from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorimport loggingimport datetimeimport timeimport threadinga = '%(asctime)s %(message)s'logging.basicConfig(level=log...原创 2019-06-11 13:35:11 · 137 阅读 · 0 评论 -
多进程
多进程import multiprocessingimport loggingimport threadingimport datetimea = '%(asctime)s %(process)s %(processName)s %(threadName)s %(thread)8d %(message)s'logging.basicConfig(level=logging.INFO, ...原创 2019-06-10 23:04:00 · 94 阅读 · 0 评论 -
selector群聊最终版
selector群聊最终版class A: def __init__(self, ip='127.0.0.1', port=9999): self.addr = ip, port self.sock = socket.socket() self.s = selectors.DefaultSelector() def start(s...原创 2019-06-19 17:19:39 · 153 阅读 · 0 评论 -
socket编程
测试代码class A: def __init__(self, ip='127.0.0.1', port=9999): self.addr = ip, port self.sock = socket.socket() self.event = threading.Event() self.lock = threading.L...原创 2019-06-14 20:23:59 · 155 阅读 · 0 评论 -
osi参考模型对应协议
TCP/IP是网络上数据通信的一种协议,如果没有这个协议,你就在TCP/IP 网络上 什么也做不了HTTP协议是TCP/IP 协议里面包含的 应用层的协议而已,没有这个协议 只是 不能浏览网页而已,其他的服务是正常的 比如 邮件SMTP,POP3 协议,FTP等协议,这些协议都是 应用层协议TCP/IP协议里有链接层,网络层,传输层,应用层(HTTP协议就包含在应用层里的 一个协议)TCP/...原创 2019-06-14 19:03:50 · 1799 阅读 · 0 评论 -
selectors进阶版
代码测试:class A: def __init__(self, ip='127.0.0.1', port=9999): self.addr = ip, port self.sock = socket.socket() self.s = selectors.DefaultSelector() def start(self): ...原创 2019-06-19 13:29:47 · 126 阅读 · 0 评论 -
selectors简陋版群聊
selectors简陋版群聊s = selectors.DefaultSelector()sock = socket.socket()sock.bind(('127.0.0.1', 9999))sock.listen()logger.info(sock)sock.setblocking(False)def accept(sock, mask): nwsock, ra...原创 2019-06-19 10:32:43 · 194 阅读 · 0 评论 -
文件拷贝
fn1 = 'E:/test/a1.txt'fn2 = 'E:/test/a2.txt'with open(fn1,'w') as f: f.writelines('\n'.join(['abc','123','xyz']))with open(fn1,'rb') as f1: with open(fn2,'wb') as f2: length = 16*...原创 2019-07-05 16:38:22 · 190 阅读 · 0 评论 -
文件操作os,pathlib
import osfrom pathlib import Pathp = Path('E:/test/')print(list(p.glob('**/*'))) #返回当前目录下的所有内容递归print(os.listdir(p)) #返回当前目录下的所有内容不递归print(os.listdir('E:/test/')) #同上...原创 2019-07-04 20:29:08 · 173 阅读 · 0 评论 -
元编程
简单理解:class Meta(type): #type是元类,创建类的类 Meta继承自type,就具备了创造类的功能 def __new__(cls, *args, **kwargs): print(cls) print(args) print(kwargs) name, _, attr = args ...原创 2019-06-29 13:19:34 · 200 阅读 · 0 评论 -
装饰器习题
装饰器习题1.命令分发器1.命令分发器输入命令映射到一个函数,并执行这个函数,如果输入了某个cmd命令后没找到函数,就要调用缺省的函数执行,这正好是字典缺省参数.def dispatche(): dict1 = {} def reg(name): #注册函数 def _reg(fn): dict1[name] = fn ...原创 2019-04-26 20:19:39 · 275 阅读 · 0 评论 -
文件处理习题
from pathlib import Pathimport randomfrom string import ascii_lowercaseimport shutildirs = Path('E:/test')bases = Path('z/s/w/a/')print(dirs / bases)(dirs / bases ).mkdir(parents=True,exist_...原创 2019-05-08 13:11:31 · 280 阅读 · 0 评论 -
re模块
import re# 取出字符串string8中所有的天气状态string8 = "{ymd:'2018-01-01',tianqi:'晴',aqiInfo:'轻度污染'}," \ "{ymd:'2018-01-02',tianqi:'阴~小雨',aqiInfo:'优'}," \ "{ymd:'2018-01-03',tianqi:'小雨~中雨',aqi...原创 2019-06-27 09:16:26 · 108 阅读 · 0 评论 -
pymsql事物管理
1,conn 建立连接2,cursor 建立游标3,ping测试4,建立查询语句5,cursor.execute 执行import pymysqlfrom pymysql.cursors import DictCursorconn = pymysql.connect('192.168.106.128', 'xinzhu', '123456', 'test')cursor = co...原创 2019-06-26 21:22:41 · 125 阅读 · 0 评论 -
定义外键约束
定义外键约束:from sqlalchemy import ForeignKey例如:emp_no = Column(Integer, ForeignKey('employees.emp_no', ondelete='CASCADE'), primary_key=True)原创 2019-06-26 18:05:24 · 2130 阅读 · 0 评论 -
sql语句
sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 whe...原创 2019-06-24 09:42:17 · 180 阅读 · 0 评论 -
asyncio实现echo服务端
asyncio实现echo服务端async def handle(reader:StreamReader, writer:StreamWriter): while True: writers = [] data = await reader.read(1024) if not data or data == b'quit': ...原创 2019-06-23 10:51:56 · 518 阅读 · 0 评论 -
初识面向对象
面向对象简介面向对象类类对象方法1.实例化2.__init__方法3.类方法和静态方法类方法静态方法4.访问控制私有属性(Private)私有方法5.属性装饰器简介面向对象在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是‘类’,对象是则是这一类事物中具体的一个.三要素封装继承多态类类(Class): 用来描述具有相同的属性和方法的对象...原创 2019-05-17 20:40:25 · 114 阅读 · 0 评论 -
特殊属性dir()
魔术方法`__dir__`实例化一个类,dir(?),会显示什么?__dir__import导入什么当前模块dir()里面就添加进什么(见例1)dir()收集类的所有属性,包括继承类(祖先类)见例2例1:class A: def __init__(self): self.a = 5print('in 01',dir())a = A()from zs0...原创 2019-05-22 23:35:02 · 268 阅读 · 0 评论 -
类型注解和参数类型检查实现
类型注解和参数类型检查实现参数的类型注解变量的类型注解函数注解可否通过类型注释来判断传入的实参类型是否正确?参数的类型注解Python 是一种动态语言,变量以及函数的参数是不区分类型。这样的好处是有极大的灵活性,但坏处就是对于别人代码,无法一眼判断出参数的类型,也无法给出正确的提示.于是 Python 3 提供了一个新的特性:函数注解用 : 类型 的形式指定函数的参数类型,用 -> 类...原创 2019-04-22 23:21:08 · 1269 阅读 · 0 评论 -
python 之 functools模块
functoolsreducepartial原创 2019-04-22 20:55:18 · 829 阅读 · 0 评论 -
装饰器
释义装饰,即添加额外的修饰,在不改变函数源代码和调用方式的前提下,添加额外的功能。器,在python里面,指定的函数,例如迭代器,生成器,都是函数。装饰器,本质就是函数,功能是为其他函数添加新功能。装饰器遵循的原则(开放封闭原则)1.不改变被修饰函数的源代码2.不改变被修饰函数的调用方式实现装饰器的原理构成装饰器=高级函数+函数嵌套+闭包实现装饰器例子1:import datet...原创 2019-04-21 20:18:10 · 102 阅读 · 0 评论 -
缺省字典,有序字典
defaultdictcollections.defaultdict([default_factory[,…]])第一个参数是default_factory,缺省是None,它提供一个初始化函数.当key不存在的时候,会调用这个工厂函数来生成key对应的valued ={}for i in 'abcdef': for j in range(3): if i not ...原创 2019-04-10 09:34:19 · 257 阅读 · 0 评论 -
函数进阶
定义函数的嵌套:嵌套调用嵌套定义:定义在内部的函数无法直接在全局被调用函数名的本质:就是一个变量,保存了函数所在的内存地址闭包:内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数Python代码运行遇到函数时的运行流程:从python解释器开始执行之后,就在内存中开辟了一个空间每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来。但是当遇到函数定义的...原创 2019-04-20 19:42:02 · 125 阅读 · 0 评论 -
函数基础
函数定义与调用定义函数的规则:1.定义:def 关键词开头,空格之后接函数名称和圆括号()。2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。 参数可以定义多个,也可以不定义。 参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、**kwargs顺序定义。 如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序3.注释...原创 2019-04-20 19:20:53 · 123 阅读 · 0 评论 -
迭代器与生成器
迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器:>>>list=[1,2,3,4]>>> it = it...原创 2019-04-15 19:37:07 · 100 阅读 · 0 评论 -
切片
可切片条件线性结构p 可迭代 for … inp len()可以获取长度通过下标可以访问可以切片p 学过的线性结构列表、元组、字符串、bytes、bytearr切片 前包后不包[ m=<a<n )通过索引区间访问线性结构的一段数据sequence[start:stop] 表示返回[start, stop)区间的子序列支持负索引start为0,可以省略sto...原创 2019-04-02 20:37:09 · 300 阅读 · 0 评论 -
非线性数据结构---IPython的使用
非线性数据结构IPython的使用特殊变量shell命令魔术方法封装和解构丢弃变量练习IPython的使用特殊变量_表示前一次输出__表示倒数第二次输出___表示倒数第三次输出_dh目录历史_oh输出历史shell命令!command执行shell命令!ls -l!touch test.txtfiles = !ls -l|grep py魔术方法使用%百分号...原创 2019-04-08 10:48:07 · 106 阅读 · 0 评论 -
数据结构01---列表list
分类数值型int、float、complex、bool序列对象字符串 str列表 listtuple键值对集合set字典dict数值型数值型int、float、complex、bool都是class,1、5.0、2+3j都是对象即实例int:python3的int就是长整型,且没有大小限制,受限于内存区域的大小float:有整数部分和小数部分组成。支持十进制和科学计...原创 2019-03-28 11:34:03 · 508 阅读 · 0 评论 -
字典在视图对象中不能改变长度大小和改变数据
字典在视图对象(dictionary的view),不能改变长度大小和改变数据可如下操作keys=[]for k,v in d5.items(): if v > 100: keys.append(k)print(keys)for i in keys: d5.pop(i)print(d5)...原创 2019-04-10 20:48:41 · 188 阅读 · 0 评论 -
Python内置数据结构
字符串一个个字符组成的有序的序列,是字符的集合使用单引号、双引号、三引号引住的字符序列字符串是不可变对象Python3起,字符串就是Unicode类型字符串定义 初始化s1 = ‘string’s2 = “string2”s3 = ‘’‘this’s a “String” ‘’’s4 = ‘hello \n baidu.com’s5 = r"hello \n baidu....原创 2019-03-31 21:34:22 · 184 阅读 · 0 评论 -
Python之原码、补码、位运算、异或、同或
异或与同或异或,相异除1,相同除0同或,相同除1,相异除0例如:10 ^ 910 ^9101010010011等于3例如:10 ^ -910 ^ -90000 10101000 10011000 0011等于-3原码、反码、补码0000 0001 +1 原码=反码=补码1000 0000 -1 ...原创 2019-03-26 17:44:38 · 6943 阅读 · 1 评论 -
路径操作:os.path
os.pathpath.join(path, *paths):将一个或多个路径正确地连接起来path.split(path):将路径名path拆分为一个元组对path.dirname(path):返回 path中的目录名path.basename(path):返回基名path.abspath(path):绝对路径path.splitdrive(path):windows这个模块实现了一些有关操...原创 2019-05-02 13:03:08 · 438 阅读 · 0 评论 -
路径操作:pathlib,面向对象的文件系统路径
pathlib模块初始化操作符 /.parts访问各个部分获取路径bytes,str父目录 .parents .parent对比os.path怎么打印父目录?目录组成部分:name(文件名)stem(最终路径组件,不带其后缀)suffix(最终组件的文件扩展名)suffixes(路径的文件扩展名列表)with_name(name)with_suffix(suffix)当前工作目录,当前家目录判断...原创 2019-05-02 22:59:55 · 980 阅读 · 0 评论 -
os模块
os模块os.nameos.uname()sys.platformos.listdir(path='.'):返回目录内容列表,不递归os.stat(path, *, dir_fd=None, follow_symlinks=True)os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)os.chown(path, uid, gid, ...原创 2019-05-02 23:02:02 · 175 阅读 · 0 评论 -
魔术方法__setattr__和__getattr__
__setattr____setattr__设置实例的属性存放在哪里,在调用时,在init方法之前例如:class A: d = {} def __init__(self,x,y): self.x = x self.y = y self.d['x'] = x self.d['y'] = y def __...原创 2019-05-26 20:32:03 · 222 阅读 · 0 评论