其实和八皇后的算法差不多,八皇后不检查斜线的结果就是全排列,此外八皇后中检查皇后位置麻烦,这里只要把列表转成词典,检查一下长度就行了(有重复元素,比如到第二层,应该是1,2,如果是1,1,那么词典长度就只有1了,需要排除): def permutation(n,floor,per): for pos ...
分类:
编程语言 时间:
2020-06-12 12:48:38
阅读次数:
120
基于单线程+多任务异步协程实现异步爬取 使用asyncio加上aiohttp 协程对象 协程:对象,可以把协程当做是一个特殊的函数,如果一个函数的定义被async关键字所修饰,该特殊的函数被调用后函数内部的程序语句不会被立即执行,而是会返回一个协程对象。 from time import sleep ...
分类:
编程语言 时间:
2020-06-09 13:04:36
阅读次数:
61
yield关键字的使用 yield —— 生成器 生成器是一个不断产生值的函数 包含yield语句的函数是一个生成器 生成器每一次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值 生成器写法 def gen(n): for i in range(n): yield i**2 for i ...
分类:
其他好文 时间:
2020-06-09 11:16:30
阅读次数:
87
纸上得来终觉浅,绝知此事要躬行。 ## 生成器如何进化成协程 在了解协程之前,我们先回顾一下生成器,看看生成器的原理,下面是一段代码示例: def simple_coroutine(): # ? print('-> coroutine started') x = yield # ? print('- ...
分类:
编程语言 时间:
2020-06-08 22:07:47
阅读次数:
59
1、自己建立一个类去继承SQLALCHEMY 里面创建一个方法 调用SQLALchemy里面的函数,他会执行他的上下文 ...
分类:
其他好文 时间:
2020-06-02 11:05:52
阅读次数:
55
① sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会; ② 线程执行 sleep()方法后转入阻塞(blocked)状态,而执行 yield()方法后转入就绪(ready)状态; ③ sle ...
分类:
编程语言 时间:
2020-06-01 13:29:43
阅读次数:
116
def add(n, i): return n+i def test(): for i in range(4): yield i g = test() for n in [1, 10, 5]: g = (add(n, i) for i in g) ...
分类:
其他好文 时间:
2020-05-29 19:48:04
阅读次数:
62
# payload 请求方式 yield scrapy.Request(url=url, method='POST', dont_filter=True, meta={ 'xx': 'dd' }, headers=headers, body=json.dumps(ex_data), callback ...
分类:
其他好文 时间:
2020-05-28 21:58:46
阅读次数:
118
yield的语法规则是: 在yield这里暂停函数执行,并返回yield后面表达式的值(默认为None),直到被next()再次调用时,从上次暂停的yield代码处继续往下执行。当没有可继续next()时,抛出异常,该异常可被for循环处理。 def fib(n): a, b = 0, 1 i = ...
分类:
编程语言 时间:
2020-05-27 20:57:30
阅读次数:
96
第17条:在参数上面迭代是,要多加小心 def read_visits(data_path): with open(data_path) as f: for line in f: yield int(line) visits = read_visits("./my_numbers.txt") pri ...
分类:
编程语言 时间:
2020-05-25 19:29:24
阅读次数:
89