• 教你搭建一个好看的 Jupyter 环境

    Posted by : lon.y@qq.com on 2017年7月4日

    又到摆脱重复工作,换个心情,然而并没有软用的时间了。这次,教大家如何搭建一个好看的jupyter环境。 安装Jupyter 先来展示一下我的环境 python: 3.5.* macos: 10.12.4 安装Jupyter的过程只需安装Anaconda即可。 测试一下初始设置: jupyter notebook 配置ipython 首先,如果每次你打开一个nb(notebook)时,如果都需要载入一些模块,一个很好地方法就是配置ipython的配置文件,可

    阅读全文...

  • Closure的应用和替代方案比较

    Posted by : lon.y@qq.com on 2017年7月4日

    建议从这里下载这篇文章对应的.ipynb文件和相关资源。这样你就能在Jupyter中边阅读,边测试文中的代码。 Closure(闭包) 和相关实现方案 python中, function本身也是object, 可以直接被作为变量传入函数或者被作为结果返回(Java等语言就不能这么干)。 这种灵活性带来很多有趣的应用,其中一个就是closure。 上一个最简单的代码的例子。 def outer(): a = 1 def inner(b): print(a+b

    阅读全文...

  • 你该学习 Python 的 7 个理由

    Posted by : lon.y@qq.com on 2017年7月4日

    Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎。 诚然,它有点老了,但仍是80后啊 —— 至少没有 Cobol 或者 Fortran 那么老。而且,如果还能派上用场的话,为啥要折腾着改变它呢 (尤其在这个还有那么多方法可以提升它性能的时候)? 实际上这要看你怎么看待它,生命线长本身就是件好事 —— 说明它稳定且可靠。 如果你是像其他许多人一样都是从 Java,C

    阅读全文...

  • Flask中的请求上下文和应用上下文

    Posted by : lon.y@qq.com on 2017年7月4日

    在Flask中处理请求时,应用会生成一个“请求上下文”对象。整个请求的处理过程,都会在这个上下文对象中进行。这保证了请求的处理过程不被干扰。处理请求的具体代码如下: def wsgi_app(self, environ, start_response): with self.request_context(environ): # with语句中生成一个`response`对象 ... return response(environ, start_respo

    阅读全文...

  • sqlalchemy入门(上)

    Posted by : lon.y@qq.com on 2017年7月4日

    建议从这里下载这篇文章对应的.ipynb文件和相关资源。这样你就能在Jupyter中边阅读,边测试文中的代码。 说明 SQLAlchemy包含SQLAlchemy Core和SQLAlchemy ORM两部分, 这个系列只包含SQLAlchemy Core的内容。 由于内容较多,教程被分成了上,下两部分。 Select,Update,Delete本身内容较为丰富,放在sqlalchemy入门(下)行演示讲解。 准备¶ 安装sqlalchemy pip in

    阅读全文...

  • 一个Flask应用运行过程剖析

    Posted by : lon.y@qq.com on 2017年7月4日

    相信很多初学Flask的同学(包括我自己),在阅读官方文档或者Flask的学习资料时,对于它的认识是从以下的一段代码开始的: from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "Hello World!" if __name__ == '__main__': app.run() 运行如上代码,在浏览器中访问http://localhost:50

    阅读全文...

  • 普通反爬虫机制的应对策略

    Posted by : lon.y@qq.com on 2017年7月4日

    爬虫与反爬虫,这相爱相杀的一对,简直可以写出一部壮观的斗争史。而在大数据时代,数据就是金钱,很多企业都为自己的网站运用了反爬虫机制,防止网页上的数据被爬虫爬走。然而,如果反爬机制过于严格,可能会误伤到真正的用户请求;如果既要和爬虫死磕,又要保证很低的误伤率,那么又会加大研发的成本。 简单低级的爬虫速度快,伪装度低,如果没有反爬机制,它们可以很快的抓取大量数据,甚至因为请求过多,造成服务器不能正常工作。而伪装度高的爬虫爬取速度慢,对服务器造成的负担也相对较小

    阅读全文...

  • 如何开发一个 PyCharm 插件

    Posted by : lon.y@qq.com on 2017年7月4日

    PyCharm 是很多 Python 开发者优先选择的 IDE,功能强大,跨平台,提供免费社区版,非常良心。如果你想自己给PyCharm添加一些功能怎么办呢?有两个办法: 通过提需求实现,到 JetBrains 的 github 去提issue或者自己发Pull Request请他们merge。 通过安装插件实现,你可以查找现有的插件仓库,或者,自己写一个。 今天我们说说怎么搭建环境自己写一个 PyCharm 插件。 前期准备 先普及一下知识,开发 PyC

    阅读全文...

  • 用于构建优秀命令行的 4 个 Python 库

    Posted by : lon.y@qq.com on 2017年7月4日

    图片来源 : Mennonite Church USA Archives. 经Opensource.com. CC BY-SA 4.0修改 这是我的终端应用程序与伟大的命令行界面系列文章中的两部分。在第一篇中,我讨论了使命令行应用程序成为一种纯粹为个人喜好的功能。在本文中,我将介绍如何在几个库的帮助下,在 Python 中实现这些功能。读完后,读者会了解到如何使用  Prompt Toolkit, Click(命令行界面创建工具包)、Pygments 和 

    阅读全文...

  • python 协程 2:yield from 从入门到精通

    Posted by : lon.y@qq.com on 2017年7月4日

    上一篇python协程1:yield的使用介绍了: 生成器作为协程使用时的行为和状态 使用装饰器预激协程 调用方如何使用生成器对象的 .throw(…) 和 .close() 方法控制协程 这一篇将介绍: 协程终止时如何返回值 yield新句法的用途和语义 同时会用几个协程的示例展示协程用法。 让协程返回值 先看一个例子:这段代码会返回最终均值的结果,每次激活协程时不会产出移动平均值,而是最后一次返回。 #! -*- coding: utf-8 -*- f

    阅读全文...