- 博客(65)
- 资源 (46)
- 收藏
- 关注
原创 python里使用Future对象进行回调别的函数
Future对象也可以像协程一样,当它设置完成结果时,就可以立即进行回调别的函数,例子如下:import asyncioimport functoolsdef callback(future, n): print('{}: future done: {}'.format(n, future.result()))async def register_callbacks(all_
2017-09-06 18:05:58 3876
原创 python里使用await关键字来等待Future对象完成
在下面的例子里,演示了怎么样使用await来等Future对象设置结果完成,如下:import asynciodef mark_done(future, result): print('setting future result to {!r}'.format(result)) future.set_result(result)async def main(loop):
2017-09-06 17:58:39 2526
原创 python里使用Future对象来异步返回结果
一个Future是用来表示将来要完成的结果,异步循环可以自动完成对这种对象的状态触发,例子如下:import asynciodef mark_done(future, result): print('setting future result to {!r}'.format(result)) future.set_result(result)event_loop = a
2017-09-06 17:43:08 6097 2
原创 python里指定时间调用函数
在前面的例子里,可以使用延时调用,在这里采用指定时间来调用函数,例子如下:import asyncioimport timedef callback(n, loop): print('callback {} invoked at {}'.format(n, loop.time()))async def main(loop): now = loop.time()
2017-09-06 17:05:01 1893
原创 python里延时回调普通函数
想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一个参数是回调用延时,第二个是回调的函数名称,例子如下:import asynciodef callback(n): print('callback {} invoked'.format(n))async def main(loop): print('registering callbacks'
2017-09-06 16:52:28 2862
原创 python里协程事件循环里怎么样调用非协程函数?
为了管理协程和I/O的回调函数,asyncio库的事件循环也能基于定时的方式调用普通的函数,使用call_soon()函数,例子如下:import asyncioimport functoolsdef callback(arg, *, kwarg='default'): print('callback invoked with {} and {}'.format(arg, kwar
2017-09-06 16:06:06 1619
原创 python由生成器构成的协程语法
虽然在python3.5版本之后增加async def和await语法,但是之前的asyncio.coroutine()生成器的装饰器还是可以使用的,并且使用yield from的语法,实际同样的效果,代码如下:import asyncio@asyncio.coroutinedef outer(): print('in outer') print('waiting for
2017-09-06 15:51:14 568
原创 python里使用await关键字来等另外一个协程
一个协程里可以启动另外一个协程,并等待它完成返回结果,采用await关键字,例子如下:import asyncioasync def outer(): print('in outer') print('waiting for result1') result1 = await phase1() print('waiting for result2')
2017-09-06 15:44:35 4469
原创 安装Tensorflow1.3版本出错解决
最近安装TF1.3 带GPU版本,发现如下出错:Traceback (most recent call last): File "C:\Users\tony\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in s
2017-09-04 13:34:20 4213
原创 怎么样回放SC2Replay文件
在使用AI玩《星际争霸2》时,会在目录下生成一大堆回放文件,怎么样进行回放呢?在我这里生成的回放文件在目录:F:\game\StarCraft II\Versions\Base56787\Replays\RandomAgent里,比如 Simple128_2017-09-04-02-20-39.SC2Replay文件可以在CMD窗口里,使用下面命令:C:\Users\tony>python -m
2017-09-04 10:34:28 4173 5
原创 跟随Deepmind使用AI玩《星际争霸2》
近来人工智能的火爆,deepmind已经开始研究玩《星际争霸2》了,这个游戏比较复杂,是否可以像围棋一样超越人类呢?要想学习这个,可以到DM的开源网站下载源码:https://github.com/deepmind/pysc2我这里介绍一下在win10下怎么安装,在CMD窗口里使用:pip3 install pysc2在这之前你应该安装libsdl和pygame。这个安装目录如下:AppData\
2017-09-04 10:00:25 3671
原创 python里从协程返回一个值
下面的例子演法了怎么样从协程里返回一个值:import asyncioasync def coroutine(): print('in coroutine') return 'result'event_loop = asyncio.get_event_loop()try: return_value = event_loop.run_until_complete(
2017-09-03 16:46:41 4147
原创 有了@asyncio.coroutine装饰器,为什么还需要async关键字?
在 Python 中,异步函数通常被称作协程,创建一个协程仅仅只需使用 async 关键字,或者使用 @asyncio.coroutine 装饰器。下面的任一代码,都可以作为协程工作,形式上也是等同的:import asyncioasync def ping_server(ip): pass@asyncio.coroutinedef load_file(path): p
2017-09-03 16:20:21 7836 1
原创 python里的协程
说到Coroutine,我们必须提到两个更远的东西。在操作系统(os)级别,有进程(process)和线程(thread)两个(仅从我们常见的讲)实际的“东西”(不说概念是因为这两个家伙的确不仅仅是概念,而是实际存在的,os的代码管理的资源)。这两个东西都是用来模拟“并行”的,写操作系统的程序员通过用一定的策略给不同的进程和线程分配CPU计算资源,来让用户“以为”几个不同的事情在“同时”进行“。在
2017-09-03 16:07:53 651
原创 python里使用asyncore创建时间服务客户端
asyncore是提供一个响应的网络框架,它不像前面的例子一样,创建socket对象,然后调用它去做事情。在这里,这个模块是要应该干什么事情时,才让你去做。为了实现这种异步调用,需要继承dispatcher类,改写这个类的方法:writable是当数据发送出去时调用。readable是当有数据收到准备处理时调用。handle_connect是当连接建立时调用。handle_expt是当连接失败或者
2017-09-03 09:33:21 983
原创 python里使用asyncore模块
在计算机的世界里,想让一个CPU同时做多件事情,一般来说就两种办法,分时使用和并行使用CPU的资源。对于大量依赖IO事务的程序来说,使用一个线程做多件事情,比多线程做多件事情要来得简单,并且同样高效。如果是CPU密集型计算,就得使用多线程来实现了。在这里介绍python采用一个线程做多件事情的asyncore模块,下面是它创建一个访问WEB的客户端例子:import asyncoreclass
2017-09-03 09:15:08 1614
原创 python里给出一个列表,怎么样从列表里取出最小两项的索引值
比如给出列表[12, 13, 1, 8, 10], 这里给出的索引是1和8的索引2、3.#python 3.6import heapqlst = [12, 13, 1, 8, 10]min_n = 2temp = map(lst.index, heapq.nsmallest(min_n, lst))temp = list(temp)print(temp)结果输出如下:[2, 3]在这
2017-09-02 19:16:08 6913 1
原创 python题目要求:输出如下图片中的图形
看到这个题目时,可以分析每一行字符的组成规律,就可以分成上下两部来实现。实现的代码如下:#python 3.6import sysprint('请输入要打印的字符: ')printChar = input()print('请输入层数: ')count = input()count = int(count)rowLen = count#输出上半部分行for i in ran
2017-09-02 18:45:47 13452
原创 python里使用select模块
这个模块允许你检查一个或多个socket接收数据,或者连接进来,同时也可以检查文件管道等等。使用select函数可以检查多个socket是否可读、可写、出错等状态。一个socket是否可读,主要有三种情况:1)新的连接进来 2)有数据可以接收 3)socket关闭、出错一个socket是否可写,主要有两种情况:1)一个连接调用connect之后连接成功 2)数据可以发送例子如下:# File:
2017-09-02 11:25:17 1979
原创 python里使用socket创建UDP时间服务器
在这里使用数据报协议socket.SOCK_DGRAM,就是所谓的UDP协议。调用bind函数绑定一个端口,然后接收到客户端数据再发送回去:# File: socket-example-5.pyimport socketimport struct, time# user-accessible portPORT = 8037# reference timeTIME1970 = 22
2017-09-02 10:41:25 1444
原创 python里使用socket实现时间服务器
创建一个TCP的服务器,是很简单的,特别这是一个时间服务器。学习过网络编程的人都知道,创建服务器就是先调用bind函数绑定,接着调用listen函数来监听,就可以完成服务器的创建。下面来创建一个时间服务器,绑定端口为8037:# File: socket-example-2.pyimport socketimport struct, time# user-accessible port
2017-09-02 10:16:29 1936
原创 python里使用socket实现时间同步
在这里通过一个最简单的时间协议来学习socket的使用,最古老的时间协议是RFC868,它的定义如下:RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)E-mail:ouyang@china-pub.com译者:顾国飞(ggfei ggfei@263.net )译文发布时间:2001-4-8版权:本中文翻译文档版权
2017-09-01 18:41:58 1116
原创 python里既然有了isinstance 函数为什么还需要issubclass函数
issubclass函数与isinstance 函数比较接近,isinstance 函数是判断一个实例对象与类的关系,issubclass函数判断类与类的关系。并且isinstance 函数可以接受任何类型实例,但issubclass函数不行,会输出TypeError异常。# File: builtin-issubclass-example-1.pyclass A: passcla
2017-09-01 16:32:44 1766 1
原创 python里为什么要使用isinstance函数
当我们使用python的内置的数据类型:整数、列表或字典时,很方便就可以使用type函数来判断类型。如果使用到自定义的类,以及类实例是否就可以呢?其实所有自定义的类都是一个类型,没有办法区别,所以需要使用isinstance函数来判断类实例变量属于哪一个类产生的。# File: builtin-isinstance-example-1.pyclass A: passclass B:
2017-09-01 16:12:02 856
原创 python里使用callable函数
可以通过下面的例子来学习一下什么样的对象是可以调用的:# File: builtin-callable-example-1.pydef dump(function): if callable(function): print(function, "is callable") else: print(function, "is *not* call
2017-09-01 15:38:53 1254
python抓取天气并分析 实例源码
2017-08-28
书《深度学习》
2017-03-13
国产8051模拟器
2016-09-10
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人