摘要:1.flask基础 # 引入Flask库 from flask import Flask # 实例化,创建对象 app = Flask(__name__) # 设置路由 @app.route('/') # 定义视图函数 def index(): return 'Hello World, this i
阅读全文
摘要:1.下载 2.安装 D:\module\anaconda 3.添加环境变量 4.pycharm添加interpreter
阅读全文
摘要:(1)针对循环的优化 每次你调用str.upper, Python都会计算这个式子的值。然而,如果你把这个求值赋值给一个变量,那么求值的结果就能提前知道,Python程序就能运行得更快。 因此,关键就是尽可能减小Python在循环中的工作量。因为Python解释执行的特性,在上面的例子中会大大减慢它
阅读全文
摘要:__new__是用来创造一个类的实例的(constructor) __init__是用来初始化一个实例的(initializer)。 class newStyleClass(object): def __new__(cls): print("__new__ is called") return su
阅读全文
摘要:字典是通过哈希表实现的。字典也被称为哈希数组等。 字典 哈希数组 键 (哈希函数)--数组索引 值 数组值 哈希函数的目的是使键均匀地分布在数组中,并且可以在内存中以O(1)的时间复杂度进行寻址,从而实现快速查找和修改。 哈希表中哈希函数的设计困难在于将数据均匀分布在哈希表中,从而尽量减少哈希碰撞和
阅读全文
摘要:Python的GC模块 主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。 在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。 通过“分代回收”(generation collection)以空间换取时间来
阅读全文
摘要:import pandas as pd import warnings warnings.filterwarnings("ignore") import time from multiprocessing import Process def node(): #获取节点数据 global_id=[]
阅读全文
摘要:(1)merge df1.merge(df2,on="intopiece",how="outer") == pd.merge(df1,df2,on="intopiece",how="outer") --只能合并两个dataframe --两个dataframe至少有一列相同 df1 = pd.Dat
阅读全文
摘要:import logging logger = logging.getLogger(__name__) logger.setLevel(level = logging.INFO) handler = logging.FileHandler("session.log") handler.setLeve
阅读全文
摘要:(1)安装anaconda 1.下载 Anaconda3-5.3.1-Linux-x86_64.sh到../software sudo wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh && bash Ana
阅读全文
摘要:1.统计字典中键的个数 len dict = {'Name': 'Zara', 'Age': 7} print(len(dict)) #2 2. 字典中按某个值排序(倒序) sorted x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':1
阅读全文
摘要:协程:是单线程下的并发,又称微线程 (1)线程由操作系统控制调度;协程由应用程序级别控制调度 (2)协程的切换开销更小,属于程序级别的切换,操作系统完全感知不到。 (3)协程是指单个线程,无法利用多核 *一个程序开启多个进程,每个进程开启多个线程,每个线程开启多个协程* import gevent
阅读全文
摘要:(1)先进先出 import queue q=queue.Queue() q.put('first') q.put('second') q.put('third') print(q.get()) print(q.get()) print(q.get()) ''' first second third
阅读全文
摘要:线程的一个关键特性是每个线程都是独立运行且状态不可预测。 如果程序中的其他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时我们需要使用threading库中的Event对象。 event.set():设置事件状态为True event.wait ():等待event.set 把事件状态设置
阅读全文
摘要:(1)死锁 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 #死锁 from threading import Thread,Lock,
阅读全文
摘要:#GIL:解释器级别的锁(保护的就是解释器级别的数据),同一时间只能有一个线程来执行 from threading import Thread import time n=100 def work(): time.sleep(0.1) global n temp=n time.sleep(0.1)
阅读全文
摘要:#共享数据,硬盘(文件),Lock --不推荐 from multiprocessing import Process,Lock import time,json,random import os def search(): dic=json.load(open('db.txt')) print('
阅读全文
摘要:加锁保护数据安全,但导致加锁部分串行执行,效率降低 --加锁后要考虑释放锁,不建议使用 from multiprocessing import Process,Lock import time def work(lock): mutex.acquire() print("target %s is r
阅读全文
摘要:1.守护进程:主进程代码结束,守护进程立马结束 #守护进程 daemon:print('主')执行完成后,p1就结束掉 from multiprocessing import Process import time #并发,在同一个终端打印 def work(): print("123" ) tim
阅读全文
摘要:1.主进程和子进程的current_thread都显示为MainThread,但含义不同 主进程的MainThread表示主进程的主线程名称 子进程的MainThread表示子进程的主线程名称 #进程的current_thread from threading import Thread,curre
阅读全文