loop

Rust基础 -分支与循环

假如想象 提交于 2019-11-28 20:30:33
Rust基础 - 分支与循环 摘要 控制流 if loop for 摘要 在编程当中,通常都需要对一些条件进行判断,并根据条件为真与否选择执行对应代码。这些代码可能执行一次,或者在条件满足的条件下循环执行,知道条件不再成立。 因此,代码逻辑中条件控制主要分两类,分支和循环。 表达条件分支的一般有 if 及其关联的分支等。Rust还支持一种更为强大的分支处理方式 match 。我们将在其他文章中专门了解。 控制循环的语句有 loop , while , for 。 控制流 if if 表达式用于在给定条件为真时执行某些代码。 let num1 = 5; let num2 = 10; if num < num2 { println!("{} is smaller than {}.", num1, num2); } 在Rust中,用于条件判断的值或者表达式必须是 bool 类型,在一些编程语言中,如C/C++,一切非零的表达式都能够隐式转换为 true 。但这在Rust中是不允许的。 if 常结合 else , else if 使用,用于处理多种不同条件。 let num1 = 5; let num2 = 10; if num < num2 { println!("{} is smaller than {}.", num1, num2); } else if num1 == num2 {

多进程实现并发请求

为君一笑 提交于 2019-11-28 11:22:17
协程:在一个线程内指定切换 协程+异步IO aiohttp      asyncio  模块 封装http数据包   异步IO """ 可以实现并发 但是,请求发送出去后和返回之前,中间时期进程空闲 编写方式: - 直接返回处理 - 通过回调函数处理 """ ########### 编写方式一 ########### """ from concurrent.futures import ProcessPoolExecutor import requests import time def task(url): response = requests.get(url) print(url,response) # 写正则表达式 pool = ProcessPoolExecutor(7) url_list = [ 'http://www.cnblogs.com/wupeiqi', 'http://huaban.com/favorite/beauty/', 'http://www.bing.com', 'http://www.zhihu.com', 'http://www.sina.com', 'http://www.baidu.com', 'http://www.autohome.com.cn', ] for url in url_list: pool.submit(task,url)

异步爬虫

人走茶凉 提交于 2019-11-28 03:24:28
一 线程池实现异步爬虫 import time import requests from multiprocessing.dummy import Pool start_time = time.time() def get_page(url): print("正在下载:", url) response = requests.get(url) time.sleep(3) print("下载完成", url) return {'url': url, 'content': response.text} urls = [ 'http://www.jd.com', 'https://www.baidu.com', 'https://www.python.org' ] if __name__ == '__main__': # 实例化一个线程对象 pool = Pool(4) # 将列表中每一个列表元素传给get_page进行处理 pool.map(get_page, urls) 使用线程池爬取梨视频数据 import time, re import requests from multiprocessing.dummy import Pool from lxml import etree # 线程池处理的是阻塞较为耗时的操作 start_time = time.time() headers =

test2

跟風遠走 提交于 2019-11-28 02:07:38
create or replace trigger t1 after insert on person declare begin dbms_output.put_line('新员工入职'); end; insert into person values(2,'小红',2); commit; select * from person; set serveroutput on delete from person where pid=1; commit; insert into person values(1,'小明',1); commit; ---- 行级触发器: create or replace trigger t2 before update on emp for each row declare begin if :old.sal>:new.sal then raise_application_error(-20001,'不能给员工降薪'); end if; update emp set sal=sal-1 column where empno=1001; commit; select * from emp; select * from emp; conn sys/oracle as SYSDBA; declare i number(2) := 10; s varchar2

解决移动端浏览器 HTML 音频不能自动播放的三种方法

被刻印的时光 ゝ 提交于 2019-11-27 22:06:29
https://blog.csdn.net/PY0312/article/details/90349386 由于Android,IOS移动端的浏览器以及微信自带的浏览器为了用户更好的体验,规定不自动播放音频视频,默认屏蔽了autoplay,如果要想达到自动播放效果,需要单独处理,方法有以下几种: 第一种:添加控制属性(controls) 原理:直接使用行内式添加controls属性,显示控制按钮,让用户手动触发音频播放 <audio autoplay="autopaly" loop="loop" controls="controls" id="audios"> <source src="music/bg.mp3" type="audio/mp3" /> </audio> 第二种:创建页面监听(WeixinJSBridgeReady) 原理:对页面加载进行监听,等待微信客户端页面加载完毕后,自动触发音频播放 <audio autoplay="autopaly" loop="loop" id="audios"> <source src="music/bg.mp3" type="audio/mp3" /> </audio> <script> // 将以下代码添加到js入口函数内即可 // 这里使用了微信自带的WeixinJSBridgeReady事件 document

【12.3】call_soon、call_at、call_later、call_soon_threadsafe

蹲街弑〆低调 提交于 2019-11-27 18:35:39
call_soon,即刻执行 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import asyncio 4 5 6 def callback(sleep_times): 7 print('sleep {} success'.format(sleep_times)) 8 9 10 def stop_loop(loop): 11 loop.stop() 12 13 14 if __name__ == '__main__': 15 loop = asyncio.get_event_loop() 16 # 即刻执行 17 loop.call_soon(callback, 2) 18 loop.call_soon(stop_loop, loop) 19 loop.run_forever() sleep 2 success Process finished with exit code 0 call_later,指定时间之后再运行,执行的顺序和指定的时间有关,cal_soon比call_later优先执行 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import asyncio 4 5 6 def callback(sleep_times): 7 print('sleep {}

【12.1】事件循环

这一生的挚爱 提交于 2019-11-27 15:56:05
---恢复内容开始--- 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # 事件循环+回调(驱动生成器)+epoll(IO多路复用) 5 # asyncio是python用于解决异步io编程的一整套解决方案 6 # tornado、gevent、twisted(scrapy,django channels) 7 8 # 使用asyncio 9 import asyncio 10 import time 11 12 13 async def get_html(url): 14 """ 15 声明一个协程 16 """ 17 print('start get url') 18 await asyncio.sleep(2) 19 print('end get url') 20 21 22 if __name__ == '__main__': 23 start_time = time.time() 24 # 创建loop 25 loop = asyncio.get_event_loop() 26 tasks = [get_html('http://www.imooc.com') for i in range(10)] 27 # 将任务提交 28 loop.run_until_complete(asyncio.wait(tasks)

Oracle 中的GOTO,RETURN,EXIT

北城余情 提交于 2019-11-26 20:30:24
1.GOTO,主要用于跳转,但会打乱我们的程序逻辑,一般不使用,它可以实现RETURN,EXIT的功能 2.RETURN,返回程序末尾,结束程序 3.EXIT,主要用于退出当前循环,相当于java中的break. 4.要实现java中continue的功能可以使用自定义异常的方式 它们之间的比较: --这里的GOTO相当于下面的EXIT用法 BEGIN FOR i IN 1..2 LOOP IF i=2 THEN GOTO label; END IF; dbms_output.put_line('i='||i); END LOOP; <<label>> dbms_output.put_line('the last...'); END; / i=1 the last... PL/SQL procedure successfully completed. BEGIN FOR i IN 1..2 LOOP IF i=2 THEN --GOTO label; EXIT; END IF; dbms_output.put_line('i='||i); END LOOP; <<label>> dbms_output.put_line('the last...'); END; / i=1 the last... PL/SQL procedure successfully completed.

aiomysql实现对数据库异步读取

北慕城南 提交于 2019-11-26 16:39:45
有一个库叫做aiomysql,这是一个基于asyncio和pymysql的库。至于为什么可以在tornado中使用,是因为高版本tornado的底层使用了asyncio。 import asyncio import aiomysql async def test(loop): # 这里的loop就是我们通过asyncio.get_event_loop()创建的,但是其实可以不传,因为会自动创建一个 async with aiomysql.create_pool(host="localhost", port=3306, user="root", password="zgghyys123", db="satori", loop=loop) as pool: async with pool.acquire() as conn: async with conn.cursor() as cursor: await cursor.execute("select * from girl") data1 = await cursor.fetchone() data2 = await cursor.fetchall() print(data1) print(data2) pool.close() await pool.wait_closed() if __name__ == '__main__':