12 2021 档案
Python -- MySQL基本操作(1)
摘要:truncate table 表名; 再次自增会回到原点开始; 外键关联:使userinfo表的part_nid与part表的nid做关联,part表的nid对userinfo表的part_nid进行约束,向userinfo表插入数据时part_nid的值必须 是 part表nid列存在的值 表列及 阅读全文
posted @ 2021-12-27 12:40 csy113 阅读(50) 评论(0) 推荐(0)
Python -- 协程(3)
摘要:使用协程‘并发’爬网站 import gevent,time from urllib.request import urlopen from gevent import monkey monkey.patch_all() #monkey.patch可以监听IO阻塞,加快切换速度 def f(url) 阅读全文
posted @ 2021-12-21 22:41 csy113 阅读(40) 评论(0) 推荐(0)
Python -- 协程(2)
摘要:以下使用gevent模块实现协程,人工控制产生IO阻塞,而不是等某个线程结束后 其他线程竞争式抢资源。注意:gevent模块要从网上找 import gevent,time def foo(): print('Running in foo',time.ctime()) gevent.sleep(2) 阅读全文
posted @ 2021-12-21 22:07 csy113 阅读(31) 评论(0) 推荐(0)
Python -- 协程(1)
摘要:使用生成器实现协程“并发” from inspect import isgenerator import time,queue def consumer(name): print(' 开始 ') while True: new_baozi = yield #实例执行到这行会暂停。当producer的 阅读全文
posted @ 2021-12-21 14:49 csy113 阅读(41) 评论(0) 推荐(0)
Python -- 编码(1)
摘要:Python2 允许这样拼接 u'hello'+'world',hello数据类型为unicode,也允许 b'hello'+'world'拼接,hello类型为str。而world数据类型str 实际存放为bytes,Python2能识别到ASCII码中存在的字符 并转换为unicode进行拼接, 阅读全文
posted @ 2021-12-19 17:21 csy113 阅读(26) 评论(0) 推荐(0)
Python -- 多线程(2) -- lock
摘要:在执行某些线程操作时,需要锁定相关资源 只允许当前线程对这些资源进行操作 以下程序目标是将num 从100每次减1减到0,当不加锁时输出为99,加锁后输出为0 import time,threading r = threading.Lock() #定义锁 def addNum(): global n 阅读全文
posted @ 2021-12-16 22:07 csy113 阅读(47) 评论(0) 推荐(0)
Python -- 多线程(1)
摘要:边听音乐,边看电影。串行需要18秒,并行需要10秒 from time import ctime,sleep import threading def music(func): for i in range(2): print('开始听音乐%s 时间:%s'%(func,ctime())) slee 阅读全文
posted @ 2021-12-15 23:23 csy113 阅读(33) 评论(0) 推荐(0)
Python -- 网络编程socket(3) -- 上传文件
摘要:从client端控制上传文件到server端 server端 import socket,os address=('127.0.0.1',8000) sk=socket.socket() print(sk) sk.bind(address) sk.listen(5) BASE_DIR=os.path 阅读全文
posted @ 2021-12-15 22:40 csy113 阅读(92) 评论(0) 推荐(0)
Python -- 网络编程socket(2)
摘要:client端发送shell命令,server端将命令执行结果返回给client端 server端 import socket,subprocess sk = socket.socket() address = ('127.0.0.1',8000) sk.bind(address) sk.liste 阅读全文
posted @ 2021-12-15 10:59 csy113 阅读(67) 评论(0) 推荐(0)
Python -- 网络编程socket(1)
摘要:server端 import socket sk = socket.socket() address = ('127.0.0.1',8000) sk.bind(address) sk.listen(3) #这里的3是指允许等待连接的数量 print('waitting......') conn,ad 阅读全文
posted @ 2021-12-13 21:12 csy113 阅读(31) 评论(0) 推荐(0)
Python -- 反射(1)
摘要:getattr、hasattr、setattr、delattr class Foo: def __init__(self,name,age): self.n = name self.a = age def show(self): return '%s_%s' %(self.n,self.a) obj 阅读全文
posted @ 2021-12-13 11:36 csy113 阅读(36) 评论(0) 推荐(0)
Python -- 异常处理(4)
摘要:执行顺序:执行try下的代码 (1)如果有异常IndexError、ValueError逐层匹配,如果前面的异常类型都匹配不上由后面Exception处理异常,最后执行finally下的代码 (2)如果没有异常,执行else下的代码,最后执行finally下的代码 阅读全文
posted @ 2021-12-12 19:52 csy113 阅读(36) 评论(0) 推荐(0)
Python -- 异常处理(3) -- 自定义异常
摘要:class NewError(Exception): def __init__(self,message): self.msg = message def __str__(self): return self.msg try: raise NewError('自定义新异常') except NewE 阅读全文
posted @ 2021-12-12 19:29 csy113 阅读(163) 评论(0) 推荐(0)
Python -- 异常处理(2) -- 主动触发异常
摘要:def db(): return False def index(): try: result = db() if not result: raise Exception('数据库处理错误') #主动触发异常 except Exception as e: str_error = str(e) pri 阅读全文
posted @ 2021-12-12 19:27 csy113 阅读(167) 评论(0) 推荐(0)
Python -- 异常处理(1)
摘要:while True: try: a = input('请输入序号:') i = int(a) except Exception as abc: #这里的abc是xception的对象,对象中封装了错误信息,如果上述代码块出错,自动执行当前的内容 print(abc) i = 1 print(i) 阅读全文
posted @ 2021-12-12 18:56 csy113 阅读(40) 评论(0) 推荐(0)
Python -- 面向对象(7) -- metaclass及相关魔术方法
摘要:obj = Foo()时,内部魔术方法执行过程: class MyType(type): def __init__(self,what,bases=None,dict=None): super(MyType, self).__init__(what,bases,dict) print('1.MyTy 阅读全文
posted @ 2021-12-11 11:18 csy113 阅读(45) 评论(0) 推荐(0)
Python -- 面向对象(6) -- 使用属性进行分页
摘要:使用属性进行分页 class Pergination: def __init__(self,current_page): try: p = int(current_page) except Exception as e: #异常抛出,当输入不是数字时跳转到第1页 p = 1 self.page = 阅读全文
posted @ 2021-12-09 16:35 csy113 阅读(66) 评论(0) 推荐(0)
Python -- 面向对象(5)
摘要:生成属性的另一种方法 class Foo: def f1(self): return 123 def f2(self,value2): print(value2) def f3(self): print('DeL') p = property(fget=f1,fset=f2,fdel=f3) obj 阅读全文
posted @ 2021-12-09 16:28 csy113 阅读(43) 评论(0) 推荐(0)
Python -- 面向对象(4)
摘要:类成员:#字段 - 普通字段,保存在对象中,执行只能通过对象访问 - 静态字段,保存在类中,执行可以通过对象访问,也可以通过类访问#方法 - 普通方法,保存在类中,由对象来调用,self -> 对象 - 静态方法,保存在类中,由类直接调用 - 类方法,保存在类中,由类直接调用, cls -> 当前类 阅读全文
posted @ 2021-12-09 14:50 csy113 阅读(56) 评论(0) 推荐(0)
Python -- 面向对象(3) -- 继承
摘要:class A: def f1(self): print('A,f1') def f3(self): print('A,f3') class B(A): def f1(self): print('B.f1') def f4(self): print('B.f4') class C1(B): def 阅读全文
posted @ 2021-12-08 21:17 csy113 阅读(35) 评论(0) 推荐(0)
Python -- 面向对象(2)
摘要:class Bar: def foo(self,arg): print(self.name,self.age,self.gender,arg) z1 = Bar() z1.name = 'Tom' z1.age = 30 z1.gender = 'male' z1.foo('why') print( 阅读全文
posted @ 2021-12-08 20:21 csy113 阅读(36) 评论(0) 推荐(0)
Python -- 面向对象(1)
摘要:class Bar: # 从输出结果可看出这里的self指的是具体的对象,当对象z1调用Bar类中的foo方法时self就是z1本身,打印出来为z1的内存地址 # 同理,当对象z2调用Bar类中的foo方法时self就是z2本身,打印出来为z2的内存地址 def foo(self,arg): pri 阅读全文
posted @ 2021-12-08 16:15 csy113 阅读(37) 评论(0) 推荐(0)
Python -- 生成xml文件(2)
摘要:import xml.etree.ElementTree as ET #因为xml.etree.ElementTree比较长,as用于取个别名 new_xml = ET.Element("namelist") name = ET.SubElement(new_xml,"name",attrib={" 阅读全文
posted @ 2021-12-08 15:26 csy113 阅读(141) 评论(0) 推荐(0)
Python -- xml文件的读取、查询、修改、删除(1)
摘要:xml文件的读取、查询、修改、删除 import xml.etree.ElementTree as ET #因为xml.etree.ElementTree比较长,as用于取个别名 tree = ET.parse("xml_test") root = tree.getroot() print(root 阅读全文
posted @ 2021-12-08 15:19 csy113 阅读(872) 评论(0) 推荐(0)
Python -- 正则表达式(2)
摘要:含\的常用特殊字符 阅读全文
posted @ 2021-12-08 08:56 csy113 阅读(30) 评论(0) 推荐(0)
Python -- 正则表达式(1)
摘要:import re #import re模块是为了使用正则表达式,正则表达式本身是一种专门匹配字符串的语言 #正则表达式的方法: #findall(): 所有结果都返回到一个列表里 #search():返回匹配到的第一个对象(object),对象可以调用group()返回结果 #match():只在 阅读全文
posted @ 2021-12-08 08:53 csy113 阅读(83) 评论(0) 推荐(0)
Python -- 导入模块(2)
摘要:def ok(): print('ok') if __name__=='__main__': #如果加了这一行if条件,调用本程序中的函数ok()时能正常运行,但本程序或ok()函数被作为模块import进其他程序中,则if下的ok()就不会执行。常用于本地开发时本地调用测试。 ok() 阅读全文
posted @ 2021-12-07 23:28 csy113 阅读(37) 评论(0) 推荐(0)
Python -- 导入模块(1)
摘要:假设某项目程序开发时拆分了多个包(功能模块),各模块(python文件)之间存在调用关系,如果文件里写的是绝对路径,转移到其他主机运行则可能会因为路径不对找不到要import的模块(包),此时则要使用相对路径 import os BASE_DIR=os.path.dirname((os.path.a 阅读全文
posted @ 2021-12-07 23:14 csy113 阅读(48) 评论(0) 推荐(0)
Python生成器(3)--生成器生成 斐波那契数列与send方法
摘要:输入:def fibo(max): #用生成器生成斐波那契数列 n,before,after = 0,0,1 while n < max: yield before before,after = after,before+after n += 1g=fibo(10) #生成斐波那契数列的前10个数p 阅读全文
posted @ 2021-12-05 16:54 csy113 阅读(271) 评论(0) 推荐(0)
Python生成器(2)
摘要:创建生成器的两种方式: 1.列表生成式 2.yield ################################################### 输入: def foo(): print('ok') yield 1 print('alright') yield 2g=foo()next 阅读全文
posted @ 2021-12-05 11:18 csy113 阅读(44) 评论(0) 推荐(0)
Python -- 装饰器(5)
摘要:输入:import timedef foo(): time.sleep(2) print('foo...')def bar(): time.sleep(3) print('bar...')def deco(f): def inner(): start = time.time() #增加开始时间戳 f 阅读全文
posted @ 2021-12-04 15:50 csy113 阅读(39) 评论(0) 推荐(0)
Python -- 购物车(初级版)
摘要:product_list = [['cup',8],['iphone',7999],['bag',149],['notebook',3999],['toy',80],['noodles',13],['pork',19],['icecream',16]] #定义商品列表while True: mone 阅读全文
posted @ 2021-12-01 21:04 csy113 阅读(100) 评论(0) 推荐(0)