摘要:
import copy a = ['a','b','c'] b = a #b和a引用自同一块地址空间 print("a==b :",a==b) print("a is b :",a is b) c = copy.deepcopy(a)# 对a进行深拷贝 print("a的id值为:",id(a))
阅读全文
posted @ 2020-05-07 21:22
Hany47315
阅读(125)
推荐(0)
摘要:
from threading import Thread g_num = 0 def test1(): global g_num for i in range(1000000): g_num += 1 print(" test1 g_num=%d"%g_num) def test2(): globa
阅读全文
posted @ 2020-05-07 21:14
Hany47315
阅读(127)
推荐(0)
摘要:
from multiprocessing import Pool import os,time,random def worker(msg): start_time = time.time() print("(%s)开始执行,进程号为(%s)"%(msg,os.getpid())) time.sle
阅读全文
posted @ 2020-05-07 21:13
Hany47315
阅读(108)
推荐(0)
摘要:
# Queue的工作原理 from multiprocessing import Queue q = Queue(3)#初始化一个Queue对象,最多可接收3条put消息 q.put("Info1") q.put("Info2") print("q是否满了",q.full())#查看q是否满了 q.
阅读全文
posted @ 2020-05-07 21:11
Hany47315
阅读(160)
推荐(0)
摘要:
# 主线程等待所有子线程结束才结束 import threading from time import sleep,ctime def sing(): for i in range(3): print("正在唱歌 %d"%(i)) sleep(2) def dance(): for i in ran
阅读全文
posted @ 2020-05-07 21:09
Hany47315
阅读(179)
推荐(0)
摘要:
from threading import Thread def work1(nums): nums.append('a') print(' 在work1中 ',nums) def work2(nums): print(" 在work2中 ,",nums) if __name__ == '__mai
阅读全文
posted @ 2020-05-07 21:07
Hany47315
阅读(193)
推荐(0)
摘要:
from threading import Thread import time g_num = 100 def work1(): global g_num for i in range(3): g_num += 1 print(" 在work1函数中,g_num 是 %d "%(g_num)) d
阅读全文
posted @ 2020-05-07 21:05
Hany47315
阅读(1090)
推荐(0)
摘要:
from multiprocessing import Process import os # 子进程执行的函数 def run_proc(name): print("子进程运行中,名称:%s,pid:%d..."%(name,os.getpid())) if __name__ == "__main
阅读全文
posted @ 2020-05-07 21:04
Hany47315
阅读(451)
推荐(0)
摘要:
import gevent def f(n): for i in range(n): print (gevent.getcurrent(), i) # gevent.getcurrent() 获取当前进程 g1 = gevent.spawn(f, 3)#函数名,数目 g2 = gevent.spaw
阅读全文
posted @ 2020-05-07 21:02
Hany47315
阅读(203)
推荐(0)
摘要:
from gevent import monkey import gevent import urllib.request #有IO操作时,使用patch_all自动切换 monkey.patch_all() def my_downLoad(file_name, url): print('GET:
阅读全文
posted @ 2020-05-07 21:00
Hany47315
阅读(250)
推荐(0)
摘要:
""" 创建锁 mutex = threading.Lock() 锁定 mutex.acquire([blocking]) 当blocking为True时,当前线程会阻塞,直到获取到这个锁为止 默认为True 当blocking为False时,当前线程不会阻塞 释放 mutex.release()
阅读全文
posted @ 2020-05-07 20:58
Hany47315
阅读(272)
推荐(0)
摘要:
import threading # 创建ThreadLocal对象 house = threading.local() def process_paper(): user = house.user print("%s是房子的主人,in %s"%(user,threading.current_thr
阅读全文
posted @ 2020-05-07 20:56
Hany47315
阅读(109)
推荐(0)
摘要:
""" Process([group[,target[,name[,args[,kwargs]]]]]) group:大多数情况下用不到 target:表示这个进程实例所调用的对象 target=函数名 name:为当前进程实例的别名 args:表示调用对象的位置参数元组 args=(参数,) kw
阅读全文
posted @ 2020-05-07 20:54
Hany47315
阅读(217)
推荐(0)
摘要:
from multiprocessing import Process import os from time import sleep def run_proc(name,age,**kwargs): for i in range(10): print("子进程运行中,名字为 = %s,年龄为 =
阅读全文
posted @ 2020-05-07 20:53
Hany47315
阅读(152)
推荐(0)
摘要:
from multiprocessing import Pool import time import os def test(): print(" 进程池中的进程 pid=%d,ppid=%d--"%(os.getpid(),os.getppid())) for i in range(3): pr
阅读全文
posted @ 2020-05-07 20:52
Hany47315
阅读(252)
推荐(0)
摘要:
import multiprocessing import os import time import random def copy_file(queue,file_name,source_folder_name,dest_folder_name): f_read = open(source_fo
阅读全文
posted @ 2020-05-07 20:51
Hany47315
阅读(117)
推荐(0)
摘要:
#解决多进程死循环 import multiprocessing def deadLoop(): while True: print("Hello") pass if __name__ == '__main__': # 子进程死循环 p1 = multiprocessing.Process(targ
阅读全文
posted @ 2020-05-07 20:50
Hany47315
阅读(107)
推荐(0)
摘要:
import threading # 导入线程库 import time from queue import Queue # 队列 class Producer(threading.Thread): # 线程的继承类,修改 run 方法 def run(self): global queue cou
阅读全文
posted @ 2020-05-07 20:48
Hany47315
阅读(338)
推荐(0)
摘要:
''' 创建三个进程,让三个进程分别执行功能,关闭进程 Pool 创建 ,apply执行 , close,join 关闭进程 ''' from multiprocessing import Pool import os,time,random def worker(msg): # 创建一个函数,用来
阅读全文
posted @ 2020-05-07 20:47
Hany47315
阅读(135)
推荐(0)
摘要:
re中引用分组匹配字符串 import re # 能够完成对正确的字符串的匹配 ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</html>") print(ret.group()) # 如果遇到非正常的html格式字符串,匹配出错</h
阅读全文
posted @ 2020-05-07 20:44
Hany47315
阅读(134)
推荐(0)
摘要:
$通配符,匹配字符串结尾 import re email_list = ["xiaoWang@163.com", "xiaoWang@163.comheihei", ".com.xiaowang@qq.com"] for email in email_list: ret = re.match("[\
阅读全文
posted @ 2020-05-07 20:38
Hany47315
阅读(169)
推荐(0)
摘要:
def binary_search(alist, item): first = 0 last = len(alist) - 1 while first <= last: midpoint = (first + last) // 2 if alist[midpoint] == item: return
阅读全文
posted @ 2020-05-07 20:17
Hany47315
阅读(133)
推荐(0)
摘要:
二叉树的创建 class Node(object): """节点类""" def __init__(self, elem=-1, lchild=None, rchild=None): self.elem = elem self.lchild = lchild self.rchild = rchild
阅读全文
posted @ 2020-05-07 20:16
Hany47315
阅读(132)
推荐(0)
摘要:
''' Stack() 创建一个新的空栈 push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元素 is_empty() 判断栈是否为空 size() 返回栈的元素个数 ''' class Stack(object): '''栈''' def __i
阅读全文
posted @ 2020-05-07 20:14
Hany47315
阅读(153)
推荐(0)
摘要:
队列 ''' Queue() 创建一个空队列 enqueue(item) 添加元素 dequeue() 从队列头部删除一个元素 is_empty() 判断一个队列是否为空 size() 返回队列的大小 ''' class Queue(object): '''队列''' def __init__(se
阅读全文
posted @ 2020-05-07 20:12
Hany47315
阅读(596)
推荐(0)
摘要:
单链表 ''' is_empty() 链表是否为空 length() 查询链表长度 travel() 遍历整个链表 add(item) 链表头部添加元素 append(item) 链表尾部添加元素 insert(pos,item) 指定位置添加元素 remove(item) 删除节点 search(
阅读全文
posted @ 2020-05-07 20:11
Hany47315
阅读(235)
推荐(0)
摘要:
参数化 from pymysql import * def main(): find_name = input("请输入物品名称") conn = connect(host='localhost',port=3306,user='root',password='root',database='jin
阅读全文
posted @ 2020-05-07 20:08
Hany47315
阅读(474)
推荐(0)
摘要:
''' 开始 创建 connection 获取cursor 执行查询,获取数据,处理数据 关闭cursor 关闭connection 结束 ''' from pymysql import * conn = connect(host='localhost',port=3306,database=han
阅读全文
posted @ 2020-05-07 20:05
Hany47315
阅读(149)
推荐(0)
摘要:
''' 首先在未排序序列中找到最小(大)元素, 存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素, 然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 ''' def selection_sort(lst): n = len(lst) for i in range
阅读全文
posted @ 2020-05-07 20:04
Hany47315
阅读(102)
推荐(0)
摘要:
''' 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描, 找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中, 需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 ''' def insert_sort(lst): for i in range(1,len(lst)):
阅读全文
posted @ 2020-05-07 20:00
Hany47315
阅读(139)
推荐(0)
摘要:
''' 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另一部分数据小, 再按此方法对这两部分分别进行快速排序。 步骤为: 从数列中挑出一个元素,称为"基准"(pivot), 重新排序数列,所有元素比基准值小的摆放在基准前面, 所有元素比基准值大的摆在基准的后面(相同的数可以
阅读全文
posted @ 2020-05-07 19:59
Hany47315
阅读(148)
推荐(0)
摘要:
''' 先递归分解数组,后合并数组 将数组分解最小之后,然后合并两个有序数组。 比较两个数组最前面的数,谁小就先取谁, 取了之后相应的指针就向后移一位,然后再比较,直到一个数组为空 最后把另一个数组的剩余部分添加过来 ''' def merge_sort(alist): if len(alist)
阅读全文
posted @ 2020-05-07 19:58
Hany47315
阅读(116)
推荐(0)
摘要:
''' 将数组列在一个表中,分别进行插入排序。先以步长为一半,列表。然后对每一列进行排序。 然后将排好序的,再按照步长为一半,列表进行排序。 最后进行插入排序 ''' def shell_sort(lst): n = len(lst) gap = n//2 #按照总长度的一半进行分列,然后进行 行排
阅读全文
posted @ 2020-05-07 19:56
Hany47315
阅读(133)
推荐(0)
摘要:
''' 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
阅读全文
posted @ 2020-05-07 19:53
Hany47315
阅读(91)
推荐(0)
摘要:
文件写操作 ''' w 写入操作 如果文件存在,则清空内容后进行写入,不存在则创建 a 写入操作 如果文件存在,则在文件内容后追加写入,不存在则创建 with 使用 with 语句后,系统会自动关闭文件并处理异常 ''' # import os # print(os.path) # <module
阅读全文
posted @ 2020-05-07 19:50
Hany47315
阅读(147)
推荐(0)
摘要:
lst = [[1,2,3],[4,5,6],[8,2]] # print(max(max(lst))) print(max(max(lst,key=lambda x : max(x)))) # 8 max(max( ... )) 有几层列表就存在 几个 max 嵌套 2020-05-07
阅读全文
posted @ 2020-05-07 19:45
Hany47315
阅读(387)
推荐(0)