python
文章平均质量分 73
曾经去过跨越一个小时的地方
无心插柳柳成荫才是美丽,有哪种美好会来自于刻意。这一生波澜壮阔或是不惊都没问题,只愿你能够拥抱那种美丽。
展开
-
写python使用IDLE如何实现调试功能
最近初学python,刚开始使用IDLE,觉得既小巧又好用,但是写代码难免不会遇到需要调试的情况,这时候查看网上的资料,基本没有详细说明IDLE的调试功能的,在这里好好总结下自己的发现。1. 进入调试模式点击IDLE,进入python shell界面,这里点击Debug标签,点击Debugger,就可以进入调试模式了。 这时候会弹出一个框,这就是待会儿要用到的调试窗口。 2. 运行你要调试的原创 2017-02-09 23:46:39 · 19723 阅读 · 7 评论 -
Python 小技巧:Python3 表示最大整数值和浮点数值
一、引言这是我在学习 《Python Algorithms 2nd》 一书中第 28 页时候受到的启发: For intergral weights, you could use sys.maxint , even though it’s not guaranteed to be the greatest possbile value (long ints can be longer).我们废原创 2017-12-07 11:23:48 · 41243 阅读 · 1 评论 -
Python 小技巧:快速生成初始化二维数组
一、引言这是我在学习《Python Algorithms 2nd》第 29 页时候看到的代码:N = [[0]*10 for i in range(10)]按照作者的说法,上述代码会生成一个初始化全部元素值为 0 的二维数组。那么,让我们探讨下,这是为什么呢?二、探索首先,让我们明确一个概念:形如我们上述 [] 中嵌套循环的结构,也就是 Python 中定义的列表推导式(list comprehen原创 2017-12-07 12:39:28 · 75313 阅读 · 11 评论 -
Python 小技巧:任意属性值可在构造函数中设置的 Bunch Pattern
一、引言这是我在学习 《Python Algorithms 2nd》第 32 页的时候看到的代码:class Bunch(dict): def __init__(self, *args, **kwargs): super(Bunch, self).__init__(*args, **kwargs) self.__dict__ = self代码非常短小精悍,那么原创 2017-12-07 17:01:59 · 1397 阅读 · 0 评论 -
Python 踏坑之旅:今天我被 Python 的 import 给坑啦 T_T
一、引言最近在学习《Flask Web Development 2nd Edition》的时候,仿照书上的教程写了一些练习代码,并在虚拟环境中安装了 flask_bootstrap 库。这是我当前的用户目录: 然后,我想要编辑代码,import flask_bootstrap 库中的 Bootstrap 内容: 它,居然报错了?!我明明在这个虚拟环境中安装了 flask_b...原创 2018-07-23 17:33:52 · 633 阅读 · 0 评论 -
如何使用 pytest 工具测试自己的代码是否符合 pep8 风格
一、引言自从学习完《Head First Python 2nd Edition》很久之后,我又拾起了 Python 想要学习一下 Flask。我记得在《Head First Python 2nd Edition》中,作者提到了一个可以检查自己的 Python 代码是否符合 Pep8 风格的 pytest 工具,而我因为太久没有使用 Python 已经忘却了这个工具的用法。这里我整理下相...原创 2018-07-20 18:37:53 · 1409 阅读 · 3 评论 -
Python 项目管理的利器:虚拟环境 venv 的使用
一、引言最近在学习《Flask Web Development 2nd Edition》的时候,作者开篇就介绍如何使用 venv 来管理 Python 环境 。自我觉得作者讲的非常好,想要将其总结下来,方便自己日后查询,也方便各位学习 Python 的同学一起学习。众所周知,项目的环境管理一直是比较头疼的问题,如果有两个项目,一个用的是 a 库的 v1 版本,一个用的是 a 库的 v2 版...原创 2018-07-20 19:20:38 · 30407 阅读 · 1 评论 -
学习 Tkinter 最好的实例:Python 的 IDLE 源代码获取,以及初步试玩
一、引言最近疯狂沉迷 Python 的 Tkinter 库。这是 Python 自带的界面库,附带的 IDLE 就是用它编写的。那么,如果我们学完了 Tkinter,想要看看 IDLE 的源代码,该去哪里找呢?二、找到 IDLE 源代码IDLE 的源代码与 Python 是一同下载安装的。因为我使用的是 Windows 环境,我也就只能介绍下 Windows 环境中,IDLE ...原创 2018-08-02 09:42:03 · 6929 阅读 · 1 评论 -
一个例子走近 Python 的 Mixin 类:利用 Python 多继承的魔力
一、引言这篇博客,是我在看了《Python GUI Programming with Tkinter》第 76 页的小节 Exploiting the power of multiple inheritance 之后,压抑不住自己的激动兴奋之情,认真整理书写分享出来的。所用到的也是这一节作者写出来的代码,希望能给广大网友跟我一样的恍然大悟的痛快的感觉。言归正传,Python 无疑是支持多继...原创 2018-08-02 15:21:09 · 14289 阅读 · 13 评论 -
Py 的魔力转圈圈:让我们一起用 Python3 & Tkinter 实现一个报文模拟器(附简单服务端代码)
一、引言在工作中,我们总会遇到这样的需求:我们需要向服务端程序发送指定格式的报文,然后服务端进行一定的处理之后,再向我们发回处理后的报文。或者说,我们总会需要:在编写服务端运行的程序的时候,总想要有一个能够模拟接收报文、监控报文并且还能够回复报文的一个客户端程序,这样就可以方便我们调试编写我们的服务端运行的程序逻辑。前者是编写客户端程序的视角,后者是编写服务端程序的视角。不管怎...原创 2019-05-21 17:55:29 · 1375 阅读 · 0 评论 -
偷师 IDLE 源码:Tkinter 如何创建模态、非模态窗口
一、引言最近在项目中编写了一些小工具,用到了 Tkinter 界面库。一些简单的界面相关的内容网上都能搜到,但是有关 Tkinter 如何创建一个模态、非模态窗口的资料却比较少(可能是大神都比较会自学吧 T_T)。这里,我通过阅读 Python 自带的 IDE IDLE 的源代码(界面库用的 Tkinter,是最好的 Tkinter 使用范例),找到了 Tkinter 创建模态、非模态窗口的方法...原创 2019-06-10 11:43:36 · 3297 阅读 · 1 评论 -
玩转 Tkinter:使用 Tkinter 的计时函数实现一个简单的计时器程序
一、引言最近在学习 Python Tkinter 技术,并且正在尝试着使用 Tkinter 编写一些小工具软件来方便项目中一些功能的测试。偶尔有一天,我有了这么一个需求:我想要在界面上显示某个功能运行的时间,我该怎么做呢?于是乎,我就萌生了写这么一个计时器程序的想法:它能够简单的显示当前的时间,然后点击 start 按钮,即可开始计时,然后点击 stop 按钮,即可结束计时,并且将中...原创 2019-06-12 10:56:49 · 7249 阅读 · 0 评论 -
Python 踏坑之旅:听说 0.1 + 0.11 != 0.21 ?
一、引言最近在项目的开发过程中,使用 Python 写了一个小工具供测试使用,有一天,测试提过来一个匪夷所思的问题:小数累加的结果,总是莫名其妙于是乎,我也打开 Python 的 IDLE 进行测试:额,看来果然是这样。通过我的简单思考,觉得应该是计算机底层表示浮点数的精度不准的问题,通过我上网查询相关资料,也证实了我这种猜想。其中这篇博客写的非常好:Python:浮点运算的问...原创 2019-07-17 09:39:31 · 363 阅读 · 0 评论 -
Python 小技巧:巧用 range 函数批量生成索引值
一、引言这是在学习 《Python Algorithms 2nd》的时候看到的一段代码:a, b, c, d, e, f, g, h = range(8)N = [ {b, c, d, e, f}, # a {c, e}, # b {d}, # c {e}, # d {f},原创 2017-12-07 09:48:48 · 2622 阅读 · 0 评论 -
Python 小技巧:for 循环后面接 else 语句
一、引言我在学习 《Python Algorithms 2nd》的时候,在第 18 页看到了这样一段代码:def sort_w_check(seq): n = len(seq) for i in range(n-1): if seq[i] > seq[i+1] break else: return ...上述代码原创 2017-12-05 18:06:31 · 24806 阅读 · 7 评论 -
Scrapy 小技巧:选择器(Selectors)怎么写
一、引言最近刚好在学 Scrapy 框架。Scrapy 毋容置疑的强大。但是有一点,就是它的选择器语法实在是太难让人上手了。毕竟在接触 Scrapy 之前,我都是用 BeautifulSoup 进行选择解析的,一下子让我接触 xpath 和 css 两种选择器语法,实在是难以接受。当然,这篇博客并不是讲述 Scrapy 支持的这两种风格的选择器的语法的,而是提供一个小技巧帮助新手更加轻松的过渡的。二原创 2017-10-28 00:35:32 · 2048 阅读 · 2 评论 -
Scrapy 探索:使用 Scrapy 爬取自己的 CSDN 博客
一、引言在学习了 Python 之后,曾经跟随着 《Web Scraping with Python》的作者使用 urllib 和 BeautifulSoup 写过一个爬取自己 CSDN 博客的爬虫,相关博客如下: Web Scraping with Python: 使用 Python 爬 CSDN 博客而之后《Web Scraping with Python》的作者用仅仅三四页的篇幅简单介绍了下原创 2017-10-28 11:03:33 · 366 阅读 · 0 评论 -
Scrapy 探索:如何防止爬虫被禁止(翻译、转载、整理)
一、引言曾经在写一个百度关键词爬虫的时候,发现返回的 response 数据异常,最后发现是被百度 ban 掉了我的访问。那么如何防止爬虫被禁止呢?Scrapy 的官方文档给出了答案,这里我转载一下,记录一下。这是原文地址: Scrapy: Avoiding getting banned二、Avoiding getting banned Some websites implement cert翻译 2017-10-30 10:32:29 · 1734 阅读 · 0 评论 -
Web Scraping with Python: 使用 Python 下载 CSDN 博客图片
一、引言最近一直在学习 Python 的网络爬虫技术,这期间两本书在同时看: 《Web Scrapying with Python》 《精通 Scrapy 网络爬虫》而今天受到启发的就是 《Web Scrapying with Python》 P115 页的这段代码:from urllib.request import urlretrieve from urllib.request i原创 2017-11-07 18:35:41 · 1074 阅读 · 0 评论 -
Web Scraping with Python:使用 Python 导出 CSDN 博客全部文章(保留样式)和附带图片
一、引言在昨天完成了: Web Scraping with Python: 使用 Python 下载 CSDN 博客图片的实例之后,我开始了思考: 可否实现一个导出 CSDN 博客全部文章以及附带图片资源的爬虫程序?于是也就有了这篇博客。这篇博客承接了上一篇博客的程序框架,在实现了 CSDN 指定用户博客的全部文章附带图片保存功能之后,又附带添加了博客文章内容的保存功能。这将是一个非常令人激原创 2017-11-08 11:07:48 · 700 阅读 · 0 评论 -
Web Scraping with Python: 使用 Python 爬 GitHub Star 数
一、引言很久没写博客了。并不是因为自己变懒惰了,而是自己开始了新的语言 Python 的学习。三个月啃完了英文版的《Head First Python 2nd》,现在又在学习《Web Scraping with Python》了。之所以选择这本书而不是《Python CookBook》或者《Fluent Python》之类的进阶书籍,是因为我想要尽快的使用实例来锻炼自己使用 Python 的实际编程原创 2017-10-24 20:47:42 · 1021 阅读 · 0 评论 -
Python 小技巧:使用 scrapy.selector 从 XML 中提取信息
一、引言曾几何时,我还记得老大曾经给我这么一个任务: 从一个 100 来行的 xml 文件中将所有 testxml 行中的 item5 信息提取出来这个 xml 文件的结构大概如下图所示(敏感信息我已经替换成了其他字符)。当时的我还过于稚嫩,刚接触 Python 未能使用 Python 解决这个问题。正好现在学习了 Scrapy 爬虫框架,想到里面的 lxml 和 css 的 selector原创 2017-11-02 11:59:43 · 4353 阅读 · 0 评论 -
Web Scraping with Python: 使用 Python 爬 CSDN 博客
一、引言昨天,在实现了使用 Python 对于 GitHub 指定用户的 Star 总数进行爬取的功能之后,我又开始寻找着其他的爬取需求(想要练习爬虫的想法总是隐隐作痒 ^_^)。想要了解使用 Python 爬取 GitHub 用户的总 Star 数的同学可以观看我的上一篇博客: Web Scraping with Python: 使用 Python 爬 GitHub Star 数现在,我想要实现原创 2017-10-25 17:00:22 · 1514 阅读 · 0 评论 -
Web Scraping with Python: 使用 Python 爬 Baidu 关键词
一、引言自从开始看《Web Scraping with Python》这本书之后,我就天天想着给自己创造需求联系爬虫实践。我相信每一个学习爬虫的人,都曾经想过在搜索引擎上爬些有趣的东西。在自己实现了 GitHub Star 数、CSDN 博客信息的爬取之后,自然而然,就想要去爬取一下百度。想要了解前两个实例的实现的同学,可以点击这里: Web Scraping with Python: 使用 Py原创 2017-10-26 13:39:56 · 2140 阅读 · 0 评论 -
Scrapy 探索:如何使用 Pycharm 研读 Scrapy 源码
一、引言最近在研读《精通 Scrapy 网络爬虫》这本书。就这本书而言,还是很不错的,讲解的很细致。但是就 “精通” 二字,怎能不深入 Scrapy 源码呢?一直以来,作为初学者的找不到一个很好的方式来研读 Scrapy 源码。而今天使用 Pycharm 的时候正好误打误撞,找到了研读 Scrapy 源码的绝佳方式。二、Pycharm以下是我使用 Pycharm 建立 Scrapy 爬虫项目的工作目原创 2017-11-04 09:59:35 · 1264 阅读 · 0 评论 -
Python 小技巧:去掉字符串首尾附带的标点符号
直接上代码:import stringitem = 'This is a demo.'item = item.strip(string.punctuation)测试:print(item)输出:'This is a demo'去掉了末尾的标点符号:)原创 2017-11-15 20:56:42 · 17177 阅读 · 1 评论 -
Web Scraping with Python:使用 Selenium 给当前网页截屏
一、引言这是我在学习 《Web Scraping with Python》一书的第 13 章的时候学习到的内容。因为可以使用 Python 给当前网页截屏的话,也就意味着我们在书写自己的爬虫程序的时候,可以爬到自己感兴趣的网页的时候进行截屏处理,这将是一件非常有意义的事情:)这里,作者使用了 Selenium 库。这是 Python 的一个第三方库,需要自行下载,是用于模拟网页中 JavaScrip原创 2017-12-04 17:14:36 · 483 阅读 · 0 评论 -
一个例子走近 Python Socket 编程:模拟各种常见的 WinError 情况
一、引言最近在工作中使用 Python 写了一个测试用的小工具,大概作用是这样的:这个小工具作为一个服务端,对客户端发起的请求信息,做一些处理,然后将返回的报文同步或者异步的返回回去。对于这个小工具来说,其主要作为被请求服务的服务端进行工作。而在这个小工具的开发过程中,我经常会遇到诸如 Python Socket 编程的 [WinError XXXXX]之类的错误。遇到的多了,我发现,...原创 2019-07-30 23:29:19 · 1101 阅读 · 0 评论