2017年04月25日
Python 标准库模块 itertools 提供了更加方便灵活的迭代器工具。
无限迭代器
itertools.count
count(start=0, step=1)
创建一个迭代器,生成从 n 开始的连续整数,如果忽略 n,则从 0 开始计算。示例:
In [2]: for n in itertools.count():
...: if 100000 < n < 100010:
...: print n
...: if n > 1000000:
...: break
...: ...
阅读更多
2017年04月24日
这个问题来自于知乎用户的提问,当时看到这个问题,我只是做了下简单的回答。后来我发现,对于很多人来说,更准确的说应该是大部分的 Python 初学者,对这个问题理解的不是很深刻。所以这里我来做下总结,并试图把这个问题说明白。
程序入口
对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样,Java 和 C# 必须要有一个包含 Main 方法的主类来作为程序入口。
...
阅读更多
2017年04月04日
基础库与工具
six Python 2 和 3 的兼容库,用于编写 Python2 和 3 兼容的代码
attrs Attributes Without Boilerplate
assertpy assert 语句的替代品
affirm 用于更好的替换 assert 语句
decorator 简化 decorator 的使用难度而开发的模块
isort 可自动对 Python 的 import 语句进行排序和分段。可将大量的 import 结构转成非常适合阅读的排版
interruptingcow 一个 watchdog,用于中断长时间运行的代码,也就是给代码加上 timeout 功...
阅读更多
2017年03月24日
一直有写博客的习惯。还在学校的时候,经常会查一些资料,过了一段时间需要再用的时候,发现找不到了。后来学会了用浏览器的收藏夹,最后又发现收藏的网址越来越多,也越来越乱,而且很多网址最后几乎都没再去打开过。于是,才打算自己写博客。最开始的目的只是想做个备份,把别人的文章复制过来粘贴上,文末标上原文链接。
每个人对同一个问题的看法,或者描述都会有不一样。所以,后来我发现对于同一个问题很多别人写的博客文章都值得参考,但总不能一一把它们都 copy 过来吧,这样未免有些麻烦。嗯,我打算进行一下归纳和总结,不在直接复制了。这样一来,对于一个问题,我会先查阅很多资料,然后梳理思路,思考,最后按照...
阅读更多
2017年03月19日
自从工作以后,基本上没有接触过 Windows 系统,偶尔使用 Windows 也是因为要写文档,Linux 下勉强可以用 WPS Office,但是格式与同事的不兼容,也算是迫不得已。而对我自己来说,大部分的文档都用 Mardown 来搞定。在很长一段时间里,我是很鄙视 Windows 的。
使用 Windows 系统时的诸多体验是让人讨厌的。感觉其大部分软件都很笨重,软件装得多了,磁盘就不够用了。不喜欢安装一个软件时捆绑安装一大堆无用的软件。不喜欢一些软件时不时的广告弹窗。
一些人说,玩 Linux 大部分时间都花在了折腾上,是的,的确是这样。首先是,Linux 的桌面不尽如人意...
阅读更多
2017年03月16日
在编程开发中,个人觉得,只要按照规范去做,很少会出问题。刚开始学习一门技术时,的确会遇到很多的坑。踩的坑多了,这是好事,会学到更多东西,也会越来越觉得按照规范做的重要性,规范的制定就是用来规避问题的。有时候确实应该听听有经验人的建议,不要一意孤行。这好像不是本文的重点,其实我重点是想表达,尽量按规范做事,这样会少走很多弯路。
我现在使用的主力编程语言是 Python,在接触 Python 至今,我感觉我踩的坑还是极少的,基本上没有遇到什么奇怪的问题。实际上,这并不是一件好事,不踩坑,很多躺在暗处的知识点你不会了解,所以也很难成长。幸好,有一些会踩坑的同事。
一同事问我,在 Pytho...
阅读更多
2017年03月03日
Pythonpy 是一个可以在命令行直接执行简单 Python 表达式的工具。
安装:
pip install pythonpy
使用:
$ py --help
usage: py [-x] [-l] [-c PRE_CMD] [-C POST_CMD] [-V] [-h] [expression]
positional arguments:
expression e.g. py '2 ** 32'
Options:
-x treat each row of stdin as x
-l treat list...
阅读更多
2017年03月03日
Python 的内置数据数据类型包括 str, int, list, tuple, set, dict 等,有时候这些数据类型可能满足不了我们的需求。不过标准库的 collections 模块在这些内置数据类型的基础上,提供了几个额外的数据类型:
类型
说明
备注
namedtuple
命名元组,使用名字访问元素
New in version 2.6.
deque
双端队列,可以快速的从头/尾两端添加或删除元素
New in version 2.4.
Counter
计数器,用于对某项数据进行计数
New in version 2.7.
OrderedDict
有...
阅读更多